为了简化这个例子,我的网站有两个控制器,UsersController& VenuesController,两者都有自己的关联“管理员权限”。
因此,用户可以拥有“用户”管理员权限和/或“场地”管理员权限(这些是我的数据库中用户表上的bool字段)
用户登录并且我在会话中拥有他/她的权限。
我想用自定义属性修饰我的控制器,以检查用户是否具有使用控制器的正确权限。我不想创建一个UserPermissionAttribute和一个VenuePermissionAttribute,理想情况下我想要一个属性,它接受一个bool属性并检查它是否为真,所以像这样;
[CheckPermissionAttribute(_userSession.AdminPermissions.Users)]
public class UsersController : Controller
{
}
和
[CheckPermissionAttribute(_userSession.AdminPermissions.Venues)]
public class VenuesController : Controller
{
}
这是否可以实现,或者我应该关注PostSharp或其他什么来实现相同的结果?