Azure Active Directory AcquireTokenAsync не вызывает событие

1

Основываясь на этом учебнике http://www.cloudidentity.com/blog/2014/08/28/use-adal-to-connect-your-universal-apps-to-azure-ad-or-adfs/ Я пытаюсь для подключения моего универсального приложения с помощью Azure Active Directory. К несчастью приложение Windows Phone 8.1 работает не совсем правильно.

Все нормально работает (я могу войти в систему успешно, когда я нажимаю кнопку дважды, потому что во второй раз он получает "тихий" токен и метод AfterLogin), но событие в функции AcquireTokenAsync не запускается после ввода моих учетных данных в окно.

private async void Button_Click(object sender, RoutedEventArgs e)
{
    var result = await ac.AcquireTokenSilentAsync("https://graph.windows.net", ClientId);
    if (result != null && result.Status == AuthenticationStatus.Success)
        AfterLogin(result);
    else
        ac.AcquireTokenAndContinue("https://graph.windows.net", ClientId, WebAuthenticationBroker.GetCurrentApplicationCallbackUri(), AfterLogin);
}

public void AfterLogin(AuthenticationResult result)
{
    if (result.Status == AuthenticationStatus.Success)
        Frame.Navigate(typeof(HubPage));
}

Что не так, что AfterLogin не выполняется после того, как ac.AcquireTokenAndContinue() заканчивает работу?

Теги:
azure-active-directory
win-universal-app

1 ответ

1
Лучший ответ

Использовали ли вы образец Windows Phone https://github.com/AzureADSamples/NativeClient-WindowsPhone8.1 в качестве отправной точки? Работает ли образец самостоятельно, прежде чем интегрировать его в универсальное приложение? Я бы рекомендовал добавлять точки останова в код App.xaml.cs, чтобы гарантировать, что события продолжения будут правильно подключены.

  • 0
    Я использую этот пример xaml.codeplex.com/releases/view/136763 У меня не было ни одного решения WP8.1, которое я имел с самого начала Universal App. Я обеспечил и события продолжения в app.xaml.cs правильно подключаются.
  • 0
    Задача решена. Оказывается, я не должен создавать много объектов из библиотеки. Ключ заключается в том, чтобы создать все в App.xaml.cs, а затем только передать его на страницу входа, главную страницу и т. Д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню