Asp.net mvc授权与参数集成的属性

时间:2011-01-12 16:16:23

标签: asp.net-mvc asp.net-mvc-3

我想以下列方式对动作使用[Authorize()]属性:

[Authorize(Roles = "Administrator" or UserId == id)]
public ActionResult Edit(int id){ }

现在我正在使用这样的逻辑:

    public ActionResult Edit(int id)
    {
        if (User.IsInRole("Administrator") || User.Identity.Name.Equals(id))
        { }
    }

2 个答案:

答案 0 :(得分:3)

不,但您可以访问控制器在属性中的所有功能:

请参阅:

How to pass parameters to a custom ActionFilter in ASP.NET MVC 2?

答案 1 :(得分:2)

你做不到。在.NET中,属性只能使用常量值。另一方面,您可以编写一个自定义授权属性,该属性派生自标准属性,并在AuthorizeCore方法中实现此逻辑。