[Authorize(Roles = "admin")]
public class AdminController : Controller
{
}
Атрибут работает и на контроллерах.
Вы даже можете создать базовый контроллер и установить для него атрибут (и, следовательно, получить одинаковую авторизацию для всех производных контроллеров)
[Authorize(Roles = "user")]
public class BaseController : Controller
{
}
public class NewsController : BaseController
{
}
public class ForumController : BaseController
{
[HttpPost, Authorize(Roles="admin")]
public ActionResult Delete(int id)
{
}
}
Обновление
Первый вопрос: Вы можете поместить [HandleError]
в свой базовый контроллер, чтобы обработать ошибки MVC во всех контроллерах. Я только что написал запись в блоге , описывающую это.
Второй вопрос: да. Поместите в действия самый специфический атрибут [Authorize]
. (например, авторизуйте «пользователей» в базовом контроллере и «администраторов» в действии «Редактировать»).