asp.net-mvc-3 - MVC3 : Custom AuthorizeAttribute

标签 asp.net-mvc-3

我正在 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/

相关文章:

model-view-controller - Windows Azure CDN::Javascript、样式表和图像无法找到(404 错误)

javascript - 从模型中获取数组以查看

javascript - 为什么我的 javascript 没有在此 Razor 代码中执行?

entity-framework - Entity Framework 和MVC3包含方法

c# - 没有在服务中实现接口(interface)成员

c# - 处理我的 ObjectContext 的正确方法是什么?

c# - 使用远程验证的多字段验证

asp.net-mvc - Fluent 验证自定义验证规则

c# - 以文件扩展名结尾的 Asp.net MVC 路由

asp.net - 如何从 Javascript 调用 Controller 方法