메인 콘텐츠로 건너뛰기

dotNET 데스크톱 앱

Casdoor를 위한 Dotnet 데스크톱 앱 예제.

예제 실행 방법

사전 요구 사항

초기화

초기화에는 모두 문자열 타입의 5개의 매개변수가 필요합니다:

이름설명파일
DomainCasdoor 서버의 호스트/도메인CasdoorVariables.cs
ClientIdCasdoor 애플리케이션의 클라이언트 IDCasdoorVariables.cs
AppNameCasdoor 애플리케이션의 이름CasdoorVariables.cs
CallbackUrlCasdoor 애플리케이션에 대한 콜백 URL의 경로. 제공되지 않으면, casdoor://callback이 됩니다CasdoorVariables.cs
ClientSecretCasdoor 애플리케이션의 클라이언트 비밀번호CasdoorVariables.cs

이 매개변수들을 설정하지 않으면, 프로젝트는 기본적으로 Casdoor 온라인 데모를 Casdoor 서버로, Casnode를 Casdoor 애플리케이션으로 사용하게 됩니다.

실행

Visual Studio

  1. casdoor-dotnet-desktop-example.sln 열기
  2. Ctrl + F5를 눌러 시작

명령 줄

  1. cd src/DesktopApp
  2. dotnet run

미리보기

dotNET 데스크톱 애플리케이션을 실행하면, 새 창이 데스크톱에 나타납니다.인덱스

Casdoor 로그인 버튼을 클릭하면, 로그인 창이 데스크톱에 나타납니다. 로그인

성공적으로 로그인하면, 사용자 프로필 창이 데스크톱에 나타나며, 사용자 이름을 표시합니다.사용자 프로필

아래의 GIF 이미지에서 전체 과정을 미리 볼 수 있습니다.미리보기 gif

통합하는 방법

로그인 창 열기

var login = new Login();
// Triggered when login succeeds, you will receive an auth code in the event handler
login.CodeReceived += Login_CodeReceived;
login.ShowDialog();

인증 코드를 사용하여 사용자 정보 얻기

public async Task<string?> RequestToken(string clientId, string clientSecret, string code)
{
var body = new
{
grant_type = "authorization_code",
client_id = clientId,
client_secret = clientSecret,
code
};

var req = new RestRequest(_requestTokenUrl).AddJsonBody(body);
var token = await _client.PostAsync<TokenDto>(req);

return token?.AccessToken;
}

public async Task<UserDto?> GetUserInfo(string token)
{
var req = new RestRequest(_getUserInfoUrl).AddQueryParameter("accessToken", token);

return await _client.GetAsync<UserDto>(req);
}

...

var token = await _casdoorApi.RequestToken(
CasdoorVariables.ClientId,
CasdoorVariables.ClientSecret,
authCode
);

var user = await _casdoorApi.GetUserInfo(token);