Перейти к основному содержанию

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