2

我已经看到 AuthoriseAttribute 可以为每个单独的控制器工作,我想做的是将整个站点权限设置为一个 AD 组,这很容易做到还是应该将 authattrib 行复制并粘贴到每个控制器?

谢谢

4

1 回答 1

5

正如@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

于 2013-08-01T13:44:57.150 回答