Application de bureau dotNET
Un exemple d'application de bureau Dotnet pour Casdoor.
Comment exécuter l'exemple
Prérequis
- dotNET 6 SDK
- WebView2 Runtime (Il est généralement préinstallé sur Windows)
Initialisation
L'initialisation nécessite 5 paramètres, tous de type chaîne de caractères :
Nom | Description | Fichier |
---|---|---|
Domain | L'hôte/domaine de votre serveur Casdoor | CasdoorVariables.cs |
ClientId | L'ID Client de votre application Casdoor | CasdoorVariables.cs |
AppName | Le nom de votre application Casdoor | CasdoorVariables.cs |
CallbackUrl | Le chemin de l'URL de rappel pour votre application Casdoor. Si non fourni, ce sera casdoor://callback | CasdoorVariables.cs |
ClientSecret | Le Secret Client de votre application Casdoor | CasdoorVariables.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
- Ouvrez
casdoor-dotnet-desktop-example.sln
- Appuyez sur
Ctrl + F5
pour démarrer
Ligne de commande
cd src/DesktopApp
dotnet run
Aperçu
Après avoir exécuté l'application de bureau dotNET, une nouvelle fenêtre apparaîtra sur votre bureau.
Si vous cliquez sur le bouton Connexion Casdoor
, une fenêtre de connexion apparaîtra sur votre bureau.
Après vous être connecté avec succès, une fenêtre de profil utilisateur apparaîtra sur votre bureau, affichant votre nom d'utilisateur.
Vous pouvez prévisualiser l'ensemble du processus dans l'image GIF ci-dessous.
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);