dotNET Desktop-App
Ein Dotnet Desktop-App-Beispiel für Casdoor.
Wie man das Beispiel ausführt
Voraussetzungen
- dotNET 6 SDK
- WebView2 Runtime (Es ist normalerweise auf Windows vorinstalliert)
Initialisierung
Die Initialisierung erfordert 5 Parameter, die alle vom Typ string sind:
Name | Beschreibung | Datei |
---|---|---|
Domain | Der Host/Die Domain Ihres Casdoor-Servers | CasdoorVariables.cs |
ClientId | Die Client-ID Ihrer Casdoor-Anwendung | CasdoorVariables.cs |
AppName | Der Name Ihrer Casdoor-Anwendung | CasdoorVariables.cs |
CallbackUrl | Der Pfad der Callback-URL für Ihre Casdoor-Anwendung. Wenn nicht angegeben, wird es casdoor://callback sein | CasdoorVariables.cs |
ClientSecret | Das Client Secret Ihrer Casdoor-Anwendung | CasdoorVariables.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
- Öffnen Sie
casdoor-dotnet-desktop-example.sln
- Drücken Sie
Ctrl + F5
, um zu starten
Kommandozeile
cd src/DesktopApp
dotnet run
Vorschau
Nach dem Ausführen der dotNET Desktop-Anwendung erscheint ein neues Fenster auf Ihrem Desktop.
Wenn Sie auf den Casdoor Login
-Button klicken, erscheint ein Anmeldefenster auf Ihrem Desktop.
Nach erfolgreichem Einloggen erscheint ein Benutzerprofilfenster auf Ihrem Desktop, das Ihren Benutzernamen anzeigt.
Sie können den gesamten Prozess im untenstehenden GIF-Bild vorab sehen.
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);