Если у меня действительно большая система, требующая аутентификации, мне сложно утопить мои контроллеры/методы действий как [Авторизовать]. Свободная безопасность, по-видимому, является хорошей идеей, предложенной Jon Gallaway, но нам все равно нужно позаботиться о каждом контроллере или методе действий, требующем аутентификации. Мне просто интересно, есть ли лучший подход, что-то даже лучше, чем свободная безопасность. Есть предположения?Итак, не существует ярлыка в применении атрибута authorize в asp.net MVC?
ответ
Вы должны добавить [Authorize]
в класс BaseAuthorizedController:Controller
. Затем для классов, которые, как вы знаете, заблокировали функции. Вывод из этого класса заставит всех членов класса придерживаться базового класса атрибута [Authorize]
, и вам не нужно беспокоиться о каждой функции.
Да, я думаю, что это путь. Благодарю. – Stack0verflow
Фильтр Authorize работает так, как он работает, и я не думаю, что есть готовое решение для того, чего вы пытаетесь достичь. Если у меня нет неправильного вопроса, вы хотите, чтобы все ваши контроллеры и действия контроллера были защищены от несанкционированного доступа по умолчанию, без каких-либо дополнительных шагов, чтобы аннотировать каждый контроллер/действие с помощью фильтра авторизации, правильно? Если это так, возможно, хорошим решением будет создание вашего собственного контроллера путем расширения класса Controller. Затем переопределите метод OnAuthorization
. Например ...
public class CustomController : Controller
{
protected override void OnAuthorization(AuthorizationContext filterContext)
{
if (context.HttpContext.User.Identity.IsAuthenticated)
{
...
}
}
}
Затем вы можете проверить, был ли задан AllowAnonymous
фильтр или нет
Это круто. Тот же эффект, что и у @Irb. Я не знал, что класс контроллера имеет метод OnAuthorization. Благодарю. – Stack0verflow
Да, это так, и самая важная часть заключается в том, что метод OnAuthorization является виртуальным методом (можно переопределить). Кроме того, вы сразу получаете доступ к текущему контексту, где вы можете получить доступ к объекту 'Request',' Response', куки-файлы и весь shebang. Вы даже можете принимать решения на основе бизнес-логики высокого уровня и выполнять перенаправления на основе состояния аутентификации текущего пользователя – Leo
- 1. Использование атрибута authorize ASP.Net MVC
- 2. Что касается использования атрибута Authorize в ASP.Net MVC 4
- 3. Проверка роли пользователя, атрибута Authorize в VB.NET
- 4. Возврат HTTP 403 с использованием атрибута Authorize в ASP.Net Core
- 5. Как передать в репозиторий атрибут authorize в ASP.NET MVC
- 6. Пользовательская авторизация в Asp.net WebApi вызов только для атрибута authorize
- 7. Захват исключений из атрибута Authorize в MVC4
- 8. Что такое внутренняя работа атрибута Authorize в mvc
- 9. asp.net mvc decorate [Authorize()] с несколькими перечислениями
- 10. Откуда: [authorize] роли/пользователи (ASP.NET MVC 5)
- 11. Как передать динамическую переменную в класс атрибута authorize в asp.net mvc?
- 12. ASP.NET MVC - расширение атрибута авторизации
- 13. Реализация атрибута ReAuthentication в ASP.NET MVC 4?
- 14. Как [Authorize (Роли = «Администратор»)] работает в MVC?
- 15. ViewContext.Writer() не существует в ASP.NET MVC 1.0?
- 16. «Файл не существует» в ASP.NET MVC
- 17. Asp.net MVC атрибута авторизированного интегрирован с параметром
- 18. Можно ли переопределить поведение по умолчанию [Authorize] в ASP.NET MVC?
- 19. Маршрутизация атрибута ASP.NET MVC
- 20. Авторизовать атрибут в ASP.NET MVC
- 21. asp.net MVC пользовательских санкционировать роли атрибута
- 22. Ninject не работает в пользовательской проверке атрибута в ASP.NET MVC
- 23. RewriteRule в применении PHP MVC
- 24. Установить Authorize в MVC post method
- 25. ASP.NET MVC перенаправление из атрибута
- 26. Создание пользовательского атрибута ASP.NET MVC
- 27. MVC Routing vs. Authorization/Authorize Tag
- 28. ASP.NET MVC Forms Authentication + Authorize Attribute + Simple Roles
- 29. MVC Custom Authorize Атрибут поведения
- 30. ASP.NET MVC 2: ViewData.Model.ExecuteResult не существует
Его хорошо иметь слой супер шаблон типа всегда и имеют контроллеры с аналогичными свойствами, имеющие общий родитель, где мы можем применить фильтр авторизации – Lin