跳到主内容

dotNET 桌面应用

一个用于Casdoor的Dotnet桌面应用示例

如何运行示例

先决条件

初始化

初始化需要5个参数,所有这些参数都是字符串类型:

名称描述文件
Domain您的Casdoor服务器的主机/域CasdoorVariables.cs
Clientid您的 Casdoor 应用程序的客户端 IDCasdoorVariables.cs
AppName您的Casdoor应用程序的名称CasdoorVariables.cs
CallbackURL您的Casdoor应用程序的回调URL路径。 如果未提供,它将是casdoor://callbackCasdoorVariables.cs
ClientSecret您的Casdoor应用程序的客户端密钥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桌面应用程序后,您的桌面上将出现一个新窗口。index 索引

如果你点击Casdoor Login按钮,一个登录窗口将会出现在你的桌面上。 登录

成功登录后,用户个人资料窗口将出现在您的桌面上,显示您的用户名。用户个人资料

您可以在下面的GIF图像中预览整个过程。预览 gif

如何集成

打开登录窗口

var login = new Login();
// 当登录成功时触发,您将在事件处理器中收到一个授权码
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);