Ответ 1
MVC4 имеет новый атрибут, специально предназначенный для этого [AllowAnonymous]
[AllowAnonymous]
public ActionResult Register()
Я хочу, чтобы роли по умолчанию для моего класса контроллера были "Администраторы, редакторы содержимого"
[Authorize(Roles = "Administrators, Content Editor")]
Я сделал это, украсив контроллер вышеуказанным атрибутом. Однако есть одно действие, которое я хочу быть доступным для всех (а именно "Вид" ). Как я могу reset роли, чтобы каждый (включая полностью неавторизованных пользователей) имел доступ к этому действию.
Примечание. Я знаю, что я мог бы украсить каждое действие другого действия с помощью атрибута authorize выше, но я не хочу делать это все время. Я хочу, чтобы все действия контроллеров были недоступны по умолчанию, поэтому, если кто-то добавляет действие, он должен принять решение, чтобы сделать его доступным для широкой публики.
MVC4 имеет новый атрибут, специально предназначенный для этого [AllowAnonymous]
[AllowAnonymous]
public ActionResult Register()
Вы можете поместить атрибут Authorize в методы действия. Не только на уровне класса.
Итак, переместите атрибут из класса контроллера только в методы действий, которые вы хотите защитить.
Единственным решением, о котором я могу думать до сих пор, является создание и регистрация другого контроллера, так что у меня есть один для анонимного доступа, а один для авторизованного доступа, но который не такой элегантный, как мне бы хотелось.