我想以下列方式对动作使用[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))
{ }
}
答案 0 :(得分:3)
答案 1 :(得分:2)
你做不到。在.NET中,属性只能使用常量值。另一方面,您可以编写一个自定义授权属性,该属性派生自标准属性,并在AuthorizeCore方法中实现此逻辑。