MVC 3动作/控制器属性/权限

时间:2012-10-11 22:02:10

标签: c# asp.net-mvc

为了简化这个例子,我的网站有两个控制器,UsersController& VenuesController,两者都有自己的关联“管理员权限”。

因此,用户可以拥有“用户”管理员权限和/或“场地”管理员权限(这些是我的数据库中用户表上的bool字段)

用户登录并且我在会话中拥有他/她的权限。

我想用自定义属性修饰我的控制器,以检查用户是否具有使用控制器的正确权限。我不想创建一个UserPermissionAttribute和一个VenuePermissionAttribute,理想情况下我想要一个属性,它接受一个bool属性并检查它是否为真,所以像这样;

[CheckPermissionAttribute(_userSession.AdminPermissions.Users)]
public class UsersController : Controller
{

}

[CheckPermissionAttribute(_userSession.AdminPermissions.Venues)]
public class VenuesController : Controller
{

}

这是否可以实现,或者我应该关注PostSharp或其他什么来实现相同的结果?

1 个答案:

答案 0 :(得分:0)

您可以使用参数创建属性。操作过滤器参数是操作过滤器的属性。

但最好是使用AuthorizeAttribute

创建用户角色并使用标准方法