Я разрабатываю веб-сайт ASP.NET MVC 5, который использует локальную STS для аутентификации. Я подклассифицировал AuthorizeAttribute для настройки процесса аутентификации/авторизации, добавил MyAuthorizeAttribute в GlobalFilters. Когда пользователь пришел без аутентификации, MyAuthorizeAttribute.OnAuthorize успешно поймал его и создал SignInRequest для перенаправления на STS. Это то, что я хочу. Я заметил, что, когда пользователь успешно прошел аутентификацию и STS перенаправил пользователя обратно, браузер пользователя отправил токен SAML, встроенный в тело запроса в мое веб-приложение MVC, это по дизайну, и я ожидал, что MyAuthenticateAttribute сможет поймать этот запрос, поэтому я могу извлечь токен из тела запроса, проверьте и подтвердите его, однако функция MyAuthenticateAttribute.OnAuthorize() не получила вызов на этот раз, она напрямую перешла к контроллеру. Так что-то не так? Где я должен улавливать и обрабатывать токен POSTed от пользователя? Благодарю.Все входящие запросы обрабатываются AuthorizeAttribute в ASP.NET MVC?
ответ
Вам необходимо украсить ваш метод действий атрибутом [Авторизовать] или если вы хотите, чтобы авторизация выполнялась для всех действий в контроллере, тогда установите этот атрибут на самом контроллере.
Также обратите внимание на использование [AllowAnonymous] на https://www.codeproject.com/Articles/1008731/Insight-of-ASP-NET-MVC-s-Authorize-Attribute
AuthorizeAttribute
является одновременно Attribute
и IAuthorizationFilter
. Attributes
на самом деле не do что-нибудь, среда MVC просматривает, где этот атрибут добавлен, и регистрирует его как фильтр на лету.
Однако вместо украшения контроллеров или методы действий с ним, вы можете добавить его в качестве глобального фильтра:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AuthorizationAttribute());
filters.Add(new HandleErrorAttribute());
}
}
К тому же, вы можете создать свой собственный IAuthorizationFilter
или подкласс AuthorizeAttribute
, чтобы делать все, что вам хотеть. Если он зарегистрирован в глобальном масштабе, он будет всегда запускаться для всех действий, а затем вы можете использовать его для выполнения пользовательской авторизации запросов по всему миру.
Забыл упомянуть, что я добавил MyAuthorizeAttribute для GlobalFilters. – codewarrior
- 1. ASP.NET MVC 3 AuthorizeAttribute
- 2. ASP.Net MVC Security AuthorizeAttribute
- 3. Как расширить ASP.NET MVC AuthorizeAttribute
- 4. ASP.NET: как обрабатываются параллельные запросы
- 5. ASP.NET MVC Route Все запросы
- 6. asp.net mvc: TempData и AuthorizeAttribute
- 7. ASP.NET MVC JsonResult и AuthorizeAttribute
- 8. ASP.NET MVC Пользовательские авторизации: AuthorizeAttribute
- 9. Yii - Поймать все входящие запросы
- 10. asp.net MVC запрос 4 конца в AuthorizeAttribute
- 11. Asp.Net MVC: Использовать привязки моделей в AuthorizeAttribute?
- 12. AuthorizeAttribute redirect в ASP.NET Core MVC 6
- 13. Как скомпилировать AuthorizeAttribute в asp.net mvc?
- 14. ASP.NET MVC: AuthorizeAttribute по умолчанию страница
- 15. ASP.NET MVC AuthorizeAttribute передает значения ActionMethod?
- 16. ASP.NET MVC 4 AuthorizeAttribute и ActiveDirectoryMembershipProvider
- 17. Пользовательский MVC AuthorizeAttribute для веб-API ASP.NET
- 18. ASP.Net MVC: Можно ли переопределить атрибут AuthorizeAttribute?
- 19. ASP.NET MVC unit testing custom AuthorizeAttribute
- 20. AuthorizeAttribute в WCF как MVC
- 21. Записывает ли Application_Start все входящие запросы
- 22. Принимать все входящие запросы на ServerSocket
- 23. ASP.NET MVC - сложные запросы
- 24. Почему исключения ASP.NET MVC 3 «обрабатываются» дважды?
- 25. Вложенные запросы в asp.net mvc
- 26. AuthorizeAttribute с идентификатором ASP.NET
- 27. AuthorizeAttribute at asp.net MVC не может записывать журнал в файл
- 28. Подтвердить входящие запросы
- 29. Аудит/Записывать все входящие веб-запросы @RequestMapping аннотированных Методы
- 30. Перенаправить все запросы в ASP.NET MVC на IIS6
Забыл упомянуть, что я добавил MyAuthorizeAttribute для GlobalFilters. – codewarrior