Pular para o conteúdo principal

Aplicativo de Desktop dotNET

Um exemplo de aplicativo de desktop Dotnet para Casdoor.

Como Executar o Exemplo

Pré-requisitos

Inicialização

A inicialização requer 5 parâmetros, todos do tipo string:

NomeDescriçãoArquivo
DomainO host/domínio do seu servidor CasdoorCasdoorVariables.cs
ClientIdO ID do Cliente da sua aplicação CasdoorCasdoorVariables.cs
AppNameO nome da sua aplicação CasdoorCasdoorVariables.cs
CallbackUrlO caminho da URL de callback para a sua aplicação Casdoor. Se não fornecido, será casdoor://callbackCasdoorVariables.cs
ClientSecretO Segredo do Cliente da sua aplicação CasdoorCasdoorVariables.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

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

Linha de Comando

  1. cd src/DesktopApp
  2. dotnet run

Pré-visualização

Após executar o aplicativo de desktop dotNET, uma nova janela aparecerá em seu desktop.índice

Se você clicar no botão Casdoor Login, uma janela de login aparecerá em seu desktop. login

Após fazer login com sucesso, uma janela de perfil do usuário aparecerá em seu desktop, exibindo seu nome de usuário.perfil do usuário

Você pode pré-visualizar todo o processo na imagem GIF abaixo.gif de pré-visualização

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