我正在 MVC3
中实现自定义授权属性
。我正在数据库中存储页面级权限,并且希望向我的授权属性传递页面 ID。类似的东西:
[CustomAuthorize(PageID = 1)]
public ActionResult About()
{
return View();
}
由于 AuthorizeCore
在覆盖中仅采用一个参数,因此如何实现 Authorize Attribute
?
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
}
}
最佳答案
您将定义一个类级变量来保存 PageID,并且您的属性的构造函数会将其作为参数。或者像在示例中那样使用它,您可以创建一个名为 PageID 的公共(public)属性。
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public int PageID{get; set;}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//use PageID to do checks here.
}
}
然后在您的 AuthorizeCore
中,您将使用该属性/字段值进行检查。
关于asp.net-mvc-3 - MVC3 : Custom AuthorizeAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146573/