Aplicación de Escritorio dotNET
Un ejemplo de aplicación de escritorio Dotnet para Casdoor.
Cómo ejecutar el ejemplo
Prerrequisitos
- dotNET 6 SDK
- WebView2 Runtime (Generalmente viene preinstalado en Windows)
Inicialización
La inicialización requiere 5 parámetros, todos los cuales son de tipo string:
Nombre | Descripción | Archivo |
---|---|---|
Domain | El host/dominio de tu servidor Casdoor | CasdoorVariables.cs |
ClientId | El ID de Cliente de tu aplicación Casdoor | CasdoorVariables.cs |
AppName | El nombre de tu aplicación Casdoor | CasdoorVariables.cs |
CallbackUrl | La ruta de la URL de callback para tu aplicación Casdoor. Si no se proporciona, será casdoor://callback | CasdoorVariables.cs |
ClientSecret | El Secreto de Cliente de tu aplicación Casdoor | CasdoorVariables.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
- Abrir
casdoor-dotnet-desktop-example.sln
- Presiona
Ctrl + F5
para iniciar
Línea de Comandos
cd src/DesktopApp
dotnet run
Vista previa
Después de ejecutar la aplicación de escritorio dotNET, aparecerá una nueva ventana en tu escritorio.
Si haces clic en el botón Casdoor Login
, aparecerá una ventana de inicio de sesión en tu escritorio.
Después de iniciar sesión exitosamente, aparecerá una ventana de perfil de usuario en tu escritorio, mostrando tu nombre de usuario.
Puedes previsualizar todo el proceso en la imagen GIF a continuación.
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);