Passer au contenu principal

.NET desktop app

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

Run the example

Prérequis

Initialisation

Set these 5 string parameters:

NomDescriptionFichier
DomainL'hôte/domaine de votre serveur CasdoorCasdoorVariables.cs
ClientIdL'ID Client de votre application CasdoorCasdoorVariables.cs
AppNameLe nom de votre application CasdoorCasdoorVariables.cs
CallbackUrlLe chemin de l'URL de rappel pour votre application Casdoor. Si non fourni, ce sera casdoor://callbackCasdoorVariables.cs
ClientSecretLe Secret Client de votre application CasdoorCasdoorVariables.cs

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

Exécution

Visual Studio

  1. Ouvrez casdoor-dotnet-desktop-example.sln
  2. Appuyez sur Ctrl + F5 pour démarrer

Command line

  1. cd src/DesktopApp
  2. dotnet run

Aperçu

index

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

connexion user profile gif aperçu

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);