.NET desktop app
The casdoor-dotnet-desktop-example shows Casdoor sign-in in a .NET desktop app using WebView2.
Run the example
先决条件
- .NET 6 SDK
- WebView2 Runtime (usually preinstalled on Windows)
初始化
Set these 5 string parameters:
| 名称 | 描述 | 文件 |
|---|---|---|
| Domain | 您的Casdoor服务器的主机/域 | CasdoorVariables.cs |
| Clientid | 您的 Casdoor 应用程序的客户端 ID | CasdoorVariables.cs |
| AppName | 您的Casdoor应用程序的名称 | CasdoorVariables.cs |
| CallbackURL | 您的Casdoor应用程序的回调URL路径。 如果未提供,它将是casdoor://callback | CasdoorVariables.cs |
| ClientSecret | 您的Casdoor应用程序的客户端密钥 | CasdoorVariables.cs |
Defaults: Casdoor demo and app-casnode if not set.
运行中
Visual Studio
- 打开
casdoor-dotnet-desktop-example.sln - 按
Ctrl + F5开始
Command line
cd src/DesktopAppdotnet run
预览
Click Casdoor Login to open the login window. After sign-in, the user profile is shown.

Integration
Open the login window
var login = new Login();
// 当登录成功时触发,您将在事件处理器中收到一个授权码
login.CodeReceived += Login_CodeReceived;
login.ShowDialog();
Exchange the auth code for user info
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);