Saltar al contenido principal

Aplicación de Escritorio dotNET

Un ejemplo de aplicación de escritorio Dotnet para Casdoor.

Cómo ejecutar el ejemplo

Prerrequisitos

Inicialización

La inicialización requiere 5 parámetros, todos los cuales son de tipo string:

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

Si no configuras estos parámetros, el proyecto usará por defecto la demostración en línea de Casdoor como el servidor Casdoor y Casnode como la aplicación Casdoor.

Ejecución

Visual Studio

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

Línea de Comandos

  1. cd src/DesktopApp
  2. dotnet run

Vista previa

Después de ejecutar la aplicación de escritorio dotNET, aparecerá una nueva ventana en tu escritorio.índice

Si haces clic en el botón Casdoor Login, aparecerá una ventana de inicio de sesión en tu escritorio. iniciar sesión

Después de iniciar sesión exitosamente, aparecerá una ventana de perfil de usuario en tu escritorio, mostrando tu nombre de usuario.perfil de usuario

Puedes previsualizar todo el proceso en la imagen GIF a continuación.gif de vista previa

Cómo Integrar

Abrir la Ventana de Inicio de Sesión

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

Usar el Código de Autorización para Obtener Información del Usuario

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