Перейти до основного вмісту

dotNET Desktop App

Приклад десктопного додатку Dotnet для Casdoor.

Як запустити приклад

Передумови

Ініціалізація

Для ініціалізації потрібно 5 параметрів, всі вони мають бути типу string:

Ім'яОписФайл
DomainХост/домен вашого сервера CasdoorCasdoorVariables.cs
ClientIdID клієнта вашого додатку CasdoorCasdoorVariables.cs
AppNameНазва вашого додатку CasdoorCasdoorVariables.cs
CallbackUrlШлях до URL-адреси зворотного виклику для вашого додатку Casdoor. Якщо не надано, буде casdoor://callbackCasdoorVariables.cs
ClientSecretСекретний ключ клієнта вашого додатку CasdoorCasdoorVariables.cs

Якщо ви не встановите ці параметри, проект за замовчуванням буде використовувати онлайн-демо Casdoor як сервер Casdoor та Casnode як додаток Casdoor.

Виконання

Visual Studio

  1. Відкрийте casdoor-dotnet-desktop-example.sln
  2. Натисніть Ctrl + F5, щоб почати

Командний рядок

  1. cd src/DesktopApp
  2. dotnet run

Перегляд

Після запуску десктопного додатку dotNET на вашому робочому столі з'явиться нове вікно.індекс

Якщо ви натиснете кнопку Casdoor Login, на вашому робочому столі з'явиться вікно входу. вхід

Після успішного входу на вашому робочому столі з'явиться вікно профілю користувача, де буде відображено ваше ім'я користувача.профіль користувача

Ви можете переглянути весь процес у GIF-зображенні нижче.попередній перегляд gif

Як інтегрувати

Відкриття вікна входу

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

Використання коду авторизації для отримання інформації про користувача

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