Получите учетные записи, в которые уже выполнен вход в MSAL (MAUI)C#

Место общения программистов C#
Anonymous
Получите учетные записи, в которые уже выполнен вход в MSAL (MAUI)

Сообщение Anonymous »

Реализация MSAL в приложении MAUI.
Процесс входа создается с использованием приведенного ниже фрагмента.

Код: Выделить всё

authenticationResult = await _identityClient
.AcquireTokenInteractive(AppSettings.MSALScopes)
.WithUseEmbeddedWebView(true)
.ExecuteAsync();
При первом открытии приложения пользователь увидит страницу входа в систему MS. После входа в систему пользователь будет перенаправлен на «Главную страницу» (HomePage).
Когда вошедший в систему пользователь закроет и снова откроет приложение, он должен быть непосредственно перенаправлен на « Главная страница» (Домашняя страница). Для этого у меня есть код ниже, чтобы проверить, вошел ли пользователь уже в систему.

Код: Выделить всё

public AuthService()
{
_identityClient  = PublicClientApplicationBuilder.Create(AppSettings.MSALAzureClientId)
.WithRedirectUri(AppSettings.MSALRedirectURI)
.WithCacheOptions(CacheOptions.EnableSharedCacheOptions)
.Build();
}

public async Task IsSignedInAsync()
{
try
{
_account = (await _identityClient?.GetAccountsAsync())?.FirstOrDefault();
var authenticationResult = await _identityClient.AcquireTokenSilent(AppSettings.MSALScopes, _account).ExecuteAsync();
return authenticationResult != null;
}
catch
{
return false;
}
}
Но когда я вызываю метод IsSignedInAsync, GetAccountsAsync возвращает 0 учетных записей даже после того, как пользователь уже вошел в систему.
Как могу ли я получить учетные записи, в которые уже выполнен вход?
Как сохранить и кэшировать учетные записи в MAUI с помощью MSAL.NET (для Android и iOS).

Подробнее здесь: https://stackoverflow.com/questions/787 ... -msal-maui

Вернуться в «C#»