Saltar al contenido principal

.NET desktop app

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

Run the example

Prerrequisitos

Inicialización

Set these 5 string parameters:

NombreDescripciónArchivo
DomainEl host/dominio de tu servidor CasdoorCasdoorVariables.cs
ClientIdEl ID de Cliente de tu aplicación CasdoorCasdoorVariables.cs
AppNameEl nombre de tu aplicación CasdoorCasdoorVariables.cs
CallbackUrlLa ruta de la URL de callback para tu aplicación Casdoor. Si no se proporciona, será casdoor://callbackCasdoorVariables.cs
ClientSecretEl Secreto de Cliente de tu aplicación CasdoorCasdoorVariables.cs

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

Ejecución

Visual Studio

  1. Abrir casdoor-dotnet-desktop-example.sln
  2. Presiona Ctrl + F5 para iniciar

Command line

  1. cd src/DesktopApp
  2. dotnet run

Vista previa

index

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

iniciar sesión user profile gif de vista previa

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