#asp.net #asp.net-mvc #security #asp.net-mvc-3
#asp.net #asp.net-mvc #Безопасность #asp.net-mvc-3
Вопрос:
У меня есть ASP.NET Сайт MVC 3 с панелью администратора (не так ли? 🙂 — я использовал свое собственное решение для очень защищенной системы входа в систему.
Теперь для каждого представления в контроллере администратора мне нужно проверить, что пользователь зарегистрирован и имеет надлежащую авторизацию, поэтому каждый раз я запускаю одни и те же методы проверки и авторизации для каждого представления отдельно.
Как я мог бы выполнить одинаковые проверки для всех запросов к определенному контроллеру? (Я имею в виду, исправьте все проверки только один раз и в одном месте)
(Я также хотел бы иметь исключение, чтобы я мог разрешить пользователю использовать страницу входа в систему внутри контроллера администратора и за его пределами)
Спасибо!
Ответ №1:
Используйте атрибут на контроллере. Либо стандартный AuthorizeAttribute
(см. Это), либо напишите свой собственный.
Ответ №2:
То, что вы ищете, — это атрибуты фильтра действий. По сути, это атрибут, который вы можете разместить на контроллере, который позволяет перехватывать вызовы каждого метода действия в контроллере и, следовательно, идеально подходит для обеспечения безопасности, поскольку вы можете отклонять / принимать запросы: http://msdn.microsoft.com/en-us/library/system.web.mvc.actionfilterattribute.aspx
Ответ №3:
Если вы хотите ограничить весь контроллер вместо отдельных действий, вы можете разместить атрибут [Авторизовать] следующим образом:
[Authorize]
public class PageController : Controller
{ ... }