Ответ 1
В MVC вы обычно используете атрибут [Authorize]
для управления авторизацией. Контроллеры или отдельные действия, которые одеты с этим атрибутом, потребуют авторизации пользователя для доступа к ним - все остальные действия будут доступны анонимным пользователям.
Другими словами, подход с черным списком, где действия, требующие авторизации, являются черными для анонимных пользователей с использованием [Authorize]
- будут доступны все действия (не одетые с атрибутом).
Update:
С MVC4 был введен новый атрибут, а именно атрибут [AllowAnonymous]
. Вместе с атрибутом [Authorize]
вы можете вместо этого использовать белый список. Подход "белого списка" достигается путем переодевания всего контроллера атрибутом [Authorize]
, чтобы принудительно разрешить все действия внутри этого контроллера. Затем вы можете одеть конкретные действия, которые не должны требовать авторизации, с атрибутом [AllowAnonymous]
и тем самым белым списком только этих действий. При таком подходе вы можете быть уверены, что случайно не забываете одеться с помощью [Authorize]
, оставив его доступным для всех, даже если это не так.
Тогда ваш код может выглядеть примерно так:
[Authorize]
public class UserController : Controller {
[AllowAnonymous]
public ActionResult LogIn () {
// This action can be accessed by unauthorized users
}
public ActionResult UserDetails () {
// This action can NOT be accessed by unauthorized users
}
}