我开始用
装饰我的 Controller 类[Authorize(Roles = @"DOMAIN\ADGroup")]
将显式字符串更改为从数据库收集角色分配的参数的最佳方法是什么,从而允许角色分配的灵 active ,管理区域可以位于顶部。
例如说我有三个角色,为了争论
- 只读
- 读写
- 管理员
我想将这些角色映射到多个 AD 组
例如
- 只读 --> 域\Group1、域\Group2、域\Group3
- 读写--> DOMAIN\GroupWrite, DOMAIN\GroupManagers
- 管理员 --> DOMAIN\DomainAdmins
这将是可编辑的,我可以修改从角色到我在应用程序的管理区域中选择的任何 AD 组的映射。
我的授权属性如何利用这一点?
最佳答案
您可以扩展 AuthorizeAttribute
类。我是这样做的:
public class ExtendedAuthorizeAttribute : AuthorizeAttribute
{
protected string permission;
protected string group;
public ExtendedAuthorizeAttribute(string Permission, string Group)
{
permission = Permission;
group = Group;
}
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
{
var can = PermissionManager.Can(httpContext.User, permission, group);
if(can.HasValue)
return can.Value;
return base.AuthorizeCore(httpContext);
}
}
关于c# - 带有参数的 ASP.NET MVC 授权属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23310156/