Бесконечный цикл при использовании [Authorize] с [Route ("xyz")] - PullRequest
0 голосов
/ 14 июня 2019

У меня есть действие контроллера (внутри области, если это имеет значение), которое имеет атрибуты [Authorize] и [Route], как показано ниже:

[Route("myarea/someaction")]
[Authorize]
public IActionResult SomeAction()
{
    return View("SomeAction");
}

У меня есть приложение, настроенное для входа с помощью Azure AD, с использованием AddOpenIdConnect() и т.п. (я могу предоставить более подробную информацию об этом, если это необходимо).

Когда я перехожу на http://localhost:12345/myarea/someaction,, он правильно перенаправляет на Azure AD, аутентифицирует пользователя и перенаправляет обратно на http://localhost:12345/myarea/someaction - однако в бесконечном цикле . Он постоянно проходит через цикл аутентификации. Если я попадаю в отладчик, Request.HttpContext.User.Identity.IsAuthenticated возвращает false.

Однако, если я удаляю пользовательский атрибут [Route("myarea/someaction")] и использую http://localhost:12345/myarea/MyController/SomeAction,, он работает нормально - он аутентифицирует и перенаправляет без цикла. Request.HttpContext.User.Identity.Name правильно возвращает адрес электронной почты аутентифицированного пользователя.

Есть идеи, почему это может происходить?

Приложение - ASP.NET Core, использующее .NET Framework 4.6.1, Visual Studio 2017, Windows 10 и IIS Express.

...