ASP.NET MVC 3 - Как эффективно ограничить области? - PullRequest
4 голосов
/ 27 октября 2011

У меня есть сайт ASP.NET MVC 3 с панелью администратора (не так ли? :) - я использовал свое собственное решение для очень защищенной системы входа в систему.

Теперь,в каждом представлении в контроллере администратора мне нужно проверять, зарегистрирован ли пользователь и имеет ли он соответствующую авторизацию, поэтому каждый раз, когда я запускаю одни и те же методы проверки и авторизации для каждого представления отдельно.одинаковые проверки для всех запросов к определенному контроллеру?(Я имею в виду, правильно все проверки только один раз и в одном месте)

(я также хотел бы иметь исключение, чтобы я мог позволить пользователю использовать страницу входа внутри контроллера администратора и вне его)

Спасибо!

Ответы [ 3 ]

3 голосов
/ 27 октября 2011

Использовать атрибут на контроллере. Либо стандартный AuthorizeAttribute (см. этот ), либо напишите свой собственный.

2 голосов
/ 27 октября 2011

То, что вы ищете, это атрибуты фильтра действий.По сути, это атрибут, который вы можете поместить в контроллер, который позволяет вам перехватывать вызовы для каждого метода действия в контроллере, и поэтому идеально подходит для обеспечения безопасности, поскольку вы можете отклонять / принимать запросы: http://msdn.microsoft.com/en-us/library/system.web.mvc.actionfilterattribute.aspx

1 голос
/ 27 октября 2011

Если вы хотите ограничить весь контроллер вместо отдельных действий, вы можете поместить атрибут [Authorize] следующим образом:

[Authorize]        
public class PageController : Controller
{ ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...