0

为了简单起见,我的站点有两个控制器,UsersController 和 VenuesController,它们都有自己关联的“管理员权限”。

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

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

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

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

}

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

}

这是可能实现的,还是我应该看 PostSharp 或其他东西来达到相同的结果?

4

1 回答 1

0

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

但最好使用AuthorizeAttribute创建用户角色并使用标准方法

于 2012-10-11T22:18:28.077 回答