我已经看到 AuthoriseAttribute 可以为每个单独的控制器工作,我想做的是将整个站点权限设置为一个 AD 组,这很容易做到还是应该将 authattrib 行复制并粘贴到每个控制器?
谢谢
我已经看到 AuthoriseAttribute 可以为每个单独的控制器工作,我想做的是将整个站点权限设置为一个 AD 组,这很容易做到还是应该将 authattrib 行复制并粘贴到每个控制器?
谢谢
正如@asawyer 提到的,为您的案例使用全局过滤器是一种很好的做法。对于评论中问题的另一部分:in the global filter where do i specify what AD groups are allowed to use the site?
您可以在自定义授权属性的方法中指定角色OnAuthorization
,例如:
public class MyAuthAttribute: AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
Roles = 'ad role1, ad role2...'; //Roles is AuthorizeAttribute member
base.OnAuthorization(filterContext);
}
}
而不是像这样使用它:
GlobalFilterCollection.Add(new MyAuthAttribute());
在 global.asax 或 w/e else