我如何在ASP.NET MVC应用程序中使用Authorize属性?

时间:2011-04-11 09:17:52

标签: c# asp.net-mvc-3 authentication

我有一个拥有自己的身份验证系统的MVC应用程序。他使用自己的系统,每次都通过cookie解析来检查用户。

如果我有关于当前用户的信息,我可以将属性授权放在动作上。

用户类型是具有struct user {}

的一部分的枚举

任何人都可以告诉我如何在我的应用程序中使用authorize属性。

1 个答案:

答案 0 :(得分:3)

您可以在控制器级别使用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 constructor以及更精细的授权。

但是,如果默认AuthroizeAttribute不起作用,您可以通过继承AuthorizeAttribute来自行推广自己:

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

        // Auhtorization logic here
    }
}