Промежуточное ПО для пользовательской аутентификации в MVC 6

Я пытаюсь создать часть пользовательского промежуточного программного обеспечения аутентификации для MVC 6 и у меня есть несколько вопросов.

Во-первых, есть ли что-нибудь, что демонстрирует правильный способ реализации пользовательского промежуточного программного обеспечения аутентификации? Я пытался взломать существующий код фреймворка, но мне кажется, что это не лучший подход.

После выполнения вышеупомянутого взлома у меня получилось что-то похожее на то, что это может сработать, но я не уверен почему.

В моем Startup класс, я добавил следующее:

services.ConfigureAuthorization(auth =>
{
  auth.AddPolicy("TEST", new AuthorizationPolicyBuilder().AddAuthenticationSchemes("TEST").RequireAuthenticatedUser().Build());
});

Отсюда, если я добавлю [Authorize(Policy = "TEST")] к действию контроллера, я вижу, что все работает, в частности, я вижу, что HandleUnauthorizedAsync метод класса обработчика аутентификации запущен. Если я удалю Policy значение из Authorize атрибут, я получаю исключение, заявив, что "Следующая схема аутентификации не была принята:".

Я посмотрел на код, который создается из стандартного шаблона, и я не вижу ничего, где добавлена ​​политика авторизации. Далее я могу добавить Authorize атрибут без установки значения для Policy и это работает (происходит перенаправление на страницу входа).

Зачем мне нужна политика авторизации в одном случае, а не в другом?

С одной стороны, это работает, поэтому я не должен беспокоиться, но мне нравится понимать, как все работает, чтобы я мог лучше устранять неполадки, как только возникают реальные проблемы.

* ОБНОВИТЬ *

После дополнительных раскопок я наткнулся на AutomaticAuthentication собственность AuthenticationOptions объект. Если я установлю это свойство на true, указав значение для Policy собственность Authorize атрибут больше не нужен. Это похоже на шаг в правильном направлении, но я все еще ищу некоторые детали, связанные с этим открытием, если есть что-то, что нужно иметь.

0 ответов

Другие вопросы по тегам