Aplicativo de Desktop dotNET
Um exemplo de aplicativo de desktop Dotnet para Casdoor.
Como Executar o Exemplo
Pré-requisitos
- dotNET 6 SDK
- WebView2 Runtime (Geralmente já vem pré-instalado no Windows)
Inicialização
A inicialização requer 5 parâmetros, todos do tipo string:
Nome | Descrição | Arquivo |
---|---|---|
Domain | O host/domínio do seu servidor Casdoor | CasdoorVariables.cs |
ClientId | O ID do Cliente da sua aplicação Casdoor | CasdoorVariables.cs |
AppName | O nome da sua aplicação Casdoor | CasdoorVariables.cs |
CallbackUrl | O caminho da URL de callback para a sua aplicação Casdoor. Se não fornecido, será casdoor://callback | CasdoorVariables.cs |
ClientSecret | O Segredo do Cliente da sua aplicação Casdoor | CasdoorVariables.cs |
Se você não configurar esses parâmetros, o projeto usará por padrão o demo online do Casdoor como servidor Casdoor e o Casnode como a aplicação Casdoor.
Executando
Visual Studio
- Abrir
casdoor-dotnet-desktop-example.sln
- Pressione
Ctrl + F5
para iniciar
Linha de Comando
cd src/DesktopApp
dotnet run
Pré-visualização
Após executar o aplicativo de desktop dotNET, uma nova janela aparecerá em seu desktop.
Se você clicar no botão Casdoor Login
, uma janela de login aparecerá em seu desktop.
Após fazer login com sucesso, uma janela de perfil do usuário aparecerá em seu desktop, exibindo seu nome de usuário.
Você pode pré-visualizar todo o processo na imagem GIF abaixo.
Como Integrar
Abrindo a Janela de Login
var login = new Login();
// Triggered when login succeeds, you will receive an auth code in the event handler
login.CodeReceived += Login_CodeReceived;
login.ShowDialog();
Usando o Código de Autenticação para Obter Informações do Usuário
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);