Passer au contenu principal

Application de bureau dotNET

Un exemple d'application de bureau Dotnet pour Casdoor.

Comment exécuter l'exemple

Prérequis

Initialisation

L'initialisation nécessite 5 paramètres, tous de type chaîne de caractères :

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

Si vous ne définissez pas ces paramètres, le projet utilisera par défaut la démo en ligne Casdoor comme serveur Casdoor et le Casnode comme application Casdoor.

Exécution

Visual Studio

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

Ligne de commande

  1. cd src/DesktopApp
  2. dotnet run

Aperçu

Après avoir exécuté l'application de bureau dotNET, une nouvelle fenêtre apparaîtra sur votre bureau.index

Si vous cliquez sur le bouton Connexion Casdoor, une fenêtre de connexion apparaîtra sur votre bureau. connexion

Après vous être connecté avec succès, une fenêtre de profil utilisateur apparaîtra sur votre bureau, affichant votre nom d'utilisateur.profil utilisateur

Vous pouvez prévisualiser l'ensemble du processus dans l'image GIF ci-dessous.gif aperçu

Comment intégrer

Ouverture de la fenêtre de connexion

var login = new Login();
// Triggered when login succeeds, you will receive an auth code in the event handler
login.CodeReceived += Login_CodeReceived;
login.ShowDialog();

Utiliser le code d'authentification pour obtenir les informations de l'utilisateur

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