编辑:角色的代表/功能 - [授权(x => x.Role == Role.Admin&& x.Role == Role.Client)]

时间:2011-06-22 10:48:59

标签: c# security asp.net-mvc-2 attributes

[Authorize(Role=Role.Admin, Role.Client)]不起作用,[Authorize(Role="Admin,Client")]有效,我想传递强类型对象,因为我已定义它们,有谁知道如何?

我不想多次访问数据库,如下所示:

[Authorize(Role=Role.Admin)] 
[Authorize(Role= Role.Client)] 
public ActionResult Something()
{

}

对我不好......

编辑:

好的......所以之前的问题已被提出过,但我已经修改过,如何将其创建为委托或函数?我想选择一个或多个角色?这可能吗?

我能做到:

[Authorize(x=> x.Role == Role.Admin && x.Role == Role.Client)]

1 个答案:

答案 0 :(得分:1)

查看此博客文章,了解如何实现自定义授权注释,该注释采用强类型角色对象数组:

http://geekswithblogs.net/tyarmer/archive/2010/02/25/strongly-typed-roles-in-mvc-with-authorize-attribute.aspx