跳到主内容

.NET桌面应用

casdoor-dotnet-desktop-example展示了在使用WebView2的.NET桌面应用中实现Casdoor登录功能。

运行示例

先决条件

初始化

设置这5个字符串参数:

名称描述文件
Domain您的Casdoor服务器的主机/域CasdoorVariables.cs
Clientid您的 Casdoor 应用程序的客户端 IDCasdoorVariables.cs
AppName您的Casdoor应用程序的名称CasdoorVariables.cs
CallbackURL您的Casdoor应用程序的回调URL路径。 如果未提供,它将是casdoor://callbackCasdoorVariables.cs
ClientSecret您的Casdoor应用程序的客户端密钥CasdoorVariables.cs

默认值:Casdoor演示app-casnode如果未设置。

运行中

Visual Studio

  1. 打开 casdoor-dotnet-desktop-example.sln
  2. Ctrl + F5 开始

命令行

  1. cd src/DesktopApp
  2. dotnet run

预览

索引

点击Casdoor 登录以打开登录窗口。 登录后,显示用户个人资料。

登录 用户个人资料 预览 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,
);