Я создаю приложение Windows Phone 8.1 (Windows Runtime), которое должно пройти аутентификацию с конечной точкой Azure Active Directory OAuth. Я использую ADAL для пакета WP81 nuget в качестве диспетчера проверки подлинности, чтобы вернуть токен OAuth.ADAL для Windows Phone 8.1 Проблемы
Проблема, с которой я борюсь, - это то, где мне нужно вызвать различные методы входа ADAL в жизненный цикл страницы телефона. Прямо сейчас я звоню AuthenticationContext.AquireTokenAndContine()
в мероприятии Page.Loaded
. Я также внедрил события ContinuationManager
, IWebAuthenticationContinuable
и App.Activated
, как описано в примере кода github. Я также использую Windows.Security.Authentication.Web.WebAuthenticationBroker.GetCurrentApplicationCallbackUri()
для получения моего URI клиента.
Независимо от того, что я делаю, я продолжаю получать следующее сообщение об ошибке. Любое понимание того, что я могу сделать? Спасибо заранее за вашу помощь.
«Microsoft.IdentityModel.Clients.ActiveDirectory.AdalException» произошло в mscorlib.ni.dll, но не был обработан в пользовательском коде
Дополнительная информация: authentication_ui_failed: диалог аутентификация на основе браузера не удалось завершить
async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
await LoadFromViewModel();
}
public async Task LoadFromViewModel()
{
// Try to get a token without triggering any user prompt.
// ADAL will check whether the requested token is in the cache or can be obtained without user itneraction (e.g. via a refresh token).
AuthenticationResult result = await authContext.AcquireTokenSilentAsync(this.viewModel.RESTApiResourceUri, this.viewModel.AzureADClientId);
if (result != null && result.Status == AuthenticationStatus.Success)
{
// A token was successfully retrieved. Get the To Do list for the current user
await viewModel.BindData();
}
else
{
// Acquiring a token without user interaction was not possible.
// Trigger an authentication experience and specify that once a token has been obtained the GetTodoList method should be called
authContext.AcquireTokenAndContinue(this.viewModel.RESTApiResourceUri, this.viewModel.AzureADClientId, this.viewModel.AzureADRedirectUri, AuthenticationSuceeded);
}
}
Вы получаете ту же ошибку при запуске образца? Это может быть хорошим моментом для начала. Если там нет ошибки, вы должны проверить, что вы делаете по-другому в своем приложении. – Afshin