Перейти до основного вмісту

.NET desktop app

The casdoor-dotnet-desktop-example shows Casdoor sign-in in a .NET desktop app using WebView2.

Run the example

Передумови

Ініціалізація

Set these 5 string parameters:

Ім'яОписФайл
DomainХост/домен вашого сервера CasdoorCasdoorVariables.cs
ClientIdID клієнта вашого додатку CasdoorCasdoorVariables.cs
AppNameНазва вашого додатку CasdoorCasdoorVariables.cs
CallbackUrlШлях до URL-адреси зворотного виклику для вашого додатку Casdoor. Якщо не надано, буде casdoor://callbackCasdoorVariables.cs
ClientSecretСекретний ключ клієнта вашого додатку CasdoorCasdoorVariables.cs

Defaults: Casdoor demo and app-casnode if not set.

Виконання

Visual Studio

  1. Відкрийте casdoor-dotnet-desktop-example.sln
  2. Натисніть Ctrl + F5, щоб почати

Command line

  1. cd src/DesktopApp
  2. dotnet run

Перегляд

index

Click Casdoor Login to open the login window. After sign-in, the user profile is shown.

вхід user profile попередній перегляд gif

Integration

Open the login window

var login = new Login();
// Triggered when login succeeds, you will receive an auth code in the event handler
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);