Zum Hauptinhalt springen

dotNET Desktop-App

Ein Dotnet Desktop-App-Beispiel für Casdoor.

Wie man das Beispiel ausführt

Voraussetzungen

Initialisierung

Die Initialisierung erfordert 5 Parameter, die alle vom Typ string sind:

NameBeschreibungDatei
DomainDer Host/Die Domain Ihres Casdoor-ServersCasdoorVariables.cs
ClientIdDie Client-ID Ihrer Casdoor-AnwendungCasdoorVariables.cs
AppNameDer Name Ihrer Casdoor-AnwendungCasdoorVariables.cs
CallbackUrlDer Pfad der Callback-URL für Ihre Casdoor-Anwendung. Wenn nicht angegeben, wird es casdoor://callback seinCasdoorVariables.cs
ClientSecretDas Client Secret Ihrer Casdoor-AnwendungCasdoorVariables.cs

Wenn Sie diese Parameter nicht setzen, wird das Projekt standardmäßig das Casdoor Online-Demo als den Casdoor-Server und das Casnode als die Casdoor-Anwendung verwenden.

Ausführen

Visual Studio

  1. Öffnen Sie casdoor-dotnet-desktop-example.sln
  2. Drücken Sie Ctrl + F5, um zu starten

Kommandozeile

  1. cd src/DesktopApp
  2. dotnet run

Vorschau

Nach dem Ausführen der dotNET Desktop-Anwendung erscheint ein neues Fenster auf Ihrem Desktop.Index

Wenn Sie auf den Casdoor Login-Button klicken, erscheint ein Anmeldefenster auf Ihrem Desktop. Anmelden

Nach erfolgreichem Einloggen erscheint ein Benutzerprofilfenster auf Ihrem Desktop, das Ihren Benutzernamen anzeigt.Benutzerprofil

Sie können den gesamten Prozess im untenstehenden GIF-Bild vorab sehen.Vorschaugif

Wie man integriert

Das Anmeldefenster öffnen

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

Den Auth-Code verwenden, um Benutzerinformationen zu erhalten

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