Я пытаюсь выполнить образец WebApp-WebApi-OIDC, но он застревает в бесконечном цикле во время аутентификации при вызове WebApi. После кода в MVC TodoListController приводит к этому странному поведению:Бесконечный цикл при вызове WebApi из WebApp с использованием аутентификации OpenIDConnect AAD
if (Request.QueryString["reauth"] == "True") {
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties(),
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
Я также попытался следующим SystemWebCookieManager обходного пути, но это не помогло.
Есть ли известная ошибка или я не реализую ее правильно?
Спасибо!
Приложение отлично работает во всех областях, как О, Home, профиль, Контакт, Войти и Выйти. За исключением списка дел. Когда я нажимаю эту ссылку из пользовательского интерфейса, она отображает ** Вход, необходимый для просмотра списка дел **, и ссылку для входа. Когда я нажимаю эту ссылку, она застревает в бесконечном цикле и никогда не возвращается. Поэтому я не думаю, что это та же проблема, что и у меня, потому что профиль и другие области работают нормально. – Sam
Забыл отметить, что я использую предложенную версию пакета ADAL nuget. Поэтому я не думаю, что это одна и та же проблема, потому что она работает в других областях, которые используют SessionCache и успешно приобретают и сохраняют токен. – Sam
После дополнительной отладки я обнаружил, что 'result = await authContext.AcquireTokenSilentAsync (todoListResourceId, учетные данные, новый UserIdentifier (userObjectID, UserIdentifierType.UniqueId));' всегда терпит неудачу и выдает исключение. Блок catch отправляет его для входа в систему, а промежуточное ПО OIDC снова возвращается к тому же контроллеру. И это продолжается и продолжается.Внутренним исключением базового AdalException является _AADSTS65001: пользователь или администратор не согласился использовать приложение с идентификатором xx-xx. Отправьте запрос интерактивного авторизации для этого пользователя и ресурса. – Sam