dotNETデスクトップアプリ
Dotnetデスクトップアプリの例 for Casdoor。
例の実行方法
前提条件
- dotNET 6 SDK
- WebView2ランタイム(通常、Windowsには事前にインストールされています)
初期化
初期化には5つのパラメータが必要で、すべて文字列型です:
名前 | 説明 | ファイル |
---|---|---|
Domain | あなたのCasdoorサーバーのホスト/ドメイン | CasdoorVariables.cs |
ClientId | あなたのCasdoorアプリケーションのクライアントID | CasdoorVariables.cs |
AppName | あなたのCasdoorアプリケーションの名前 | CasdoorVariables.cs |
CallbackUrl | あなたのCasdoorアプリケーションのコールバックURLのパス。 提供されていない場合、casdoor://callback になります | CasdoorVariables.cs |
ClientSecret | あなたのCasdoorアプリケーションのクライアントシークレット | CasdoorVariables.cs |
これらのパラメータを設定しない場合、プロジェクトはデフォルトでCasdoorオンラインデモをCasdoorサーバーとして、CasnodeをCasdoorアプリケーションとして使用します。
実行中
Visual Studio
casdoor-dotnet-desktop-example.sln
を開くCtrl + F5
を押して開始
コマンドライン
cd src/DesktopApp
dotnet run
プレビュー
dotNETデスクトップアプリケーションを実行した後、デスクトップに新しいウィンドウが表示されます。
Casdoor Login
ボタンをクリックすると、デスクトップにログインウィンドウが表示されます。
正常にログインすると、デスクトップにユーザープロファイルウィンドウが表示され、あなたのユーザー名が表示されます。
以下の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);