dotNET Desktop App
Приклад десктопного додатку Dotnet для Casdoor.
Як запустити приклад
Передумови
- dotNET 6 SDK
- WebView2 Runtime (Зазвичай вже встановлено на Windows)
Ініціалізація
Для ініціалізації потрібно 5 параметрів, всі вони мають бути типу string:
Ім'я | Опис | Файл |
---|---|---|
Domain | Хост/домен вашого сервера Casdoor | CasdoorVariables.cs |
ClientId | ID клієнта вашого додатку Casdoor | CasdoorVariables.cs |
AppName | Назва вашого додатку Casdoor | CasdoorVariables.cs |
CallbackUrl | Шлях до URL-адреси зворотного виклику для вашого додатку Casdoor. Якщо не надано, буде casdoor://callback | CasdoorVariables.cs |
ClientSecret | Секретний ключ клієнта вашого додатку Casdoor | CasdoorVariables.cs |
Якщо ви не встановите ці параметри, проект за замовчуванням буде використовувати онлайн-демо Casdoor як сервер Casdoor та Casnode як додаток Casdoor.
Виконання
Visual Studio
- Відкрийте
casdoor-dotnet-desktop-example.sln
- Натисніть
Ctrl + F5
, щоб почати
Командний рядок
cd src/DesktopApp
dotnet run
Перегляд
Після запуску десктопного додатку dotNET на вашому робочому столі з'явиться нове вікно.
Якщо ви натиснете кнопку Casdoor Login
, на вашому робочому столі з'явиться вікно входу.
Після успішного входу на вашому робочому столі з'явиться вікно профілю користувача, де буде відображено ваше ім'я користувача.
Ви можете переглянути весь процес у 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);