ASP.NET MVC Роли Авторизация - PullRequest
       17

ASP.NET MVC Роли Авторизация

18 голосов
/ 23 апреля 2009

Я хочу сделать роли по умолчанию для моего класса контроллера «Администраторы, редакторы контента»

[Authorize(Roles = "Administrators, Content Editor")]

Я сделал это, украсив контроллер атрибутом выше. Тем не менее, есть одно действие, которое я хочу сделать доступным для всех (а именно «Просмотр»). Как я могу сбросить Роли, чтобы все (включая полностью неавторизованных пользователей) имели доступ к этому действию.

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

Ответы [ 3 ]

16 голосов
/ 18 февраля 2013

MVC4 имеет новый атрибут, предназначенный именно для этого [AllowAnonymous]

[AllowAnonymous]
public ActionResult Register()

http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx

4 голосов
/ 23 апреля 2009

Вы можете поместить атрибут Authorize в методы действия. Не только на уровне класса.

Итак, переместите атрибут из класса контроллера в методы действий, которые вы хотите защитить.

0 голосов
/ 23 апреля 2009

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

...