2011-01-12 128 views
2

我想通过以下方式上的操作使用[Authorize()]属性:Asp.net MVC授权属性

[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

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