2011-01-12 169 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方法中實現此邏輯。