MVC Windows身份验证 - 授权(权限)整个站点

时间:2013-08-01 13:25:28

标签: asp.net-mvc authorization

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

由于

1 个答案:

答案 0 :(得分: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