как я могу использовать атрибут авторизации в ASP.NET Приложение MVC?

#c# #asp.net-mvc-3 #authentication

#c# #asp.net-mvc-3 #аутентификация

Вопрос:

у меня есть приложение MVC, у которого есть своя система аутентификации. он использовал их собственную систему и каждый раз проверял пользователя, анализируя cookie.

как я могу поместить атрибут Authorize в действие везде, где у меня есть информация о текущем пользователе.

тип пользователя — это перечисление, у которого есть часть структуры user {}

кто-нибудь может показать мне, как я могу использовать атрибут авторизации в моем приложении.

Ответ №1:

Вы можете использовать AuthroizeAttribute либо на уровне контроллера:

 [Authorize]
public class HomeController : Controller
{
    // Now all actions require authorization
}
  

или уровень действия:

 public class HomeController : Controller
{
    public ActionResult Index()
    {
        // Does not require authorization
    }

    [Authorize]
    public ActionResult PrivateThing()
    {
        // requires authorization
    }
}
  

Вы также можете передавать имена пользователей, роли и т.д. в AuthorizeAttribute конструктор Для более детальной авторизации.

Однако, если значение по умолчанию AuthroizeAttribute у вас не работает, вы всегда можете создать свое собственное, унаследовав от AuthorizeAttribute :

 public CustomAuthorizeAttribute : AuthorizeAttribute 
{
    public override void OnAuthorization(AuthorizationContext filterContext) 
    {            
        base.OnAuthorization(filterContext);

        // Auhtorization logic here
    }
}