Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC Windows身份验证-对整个站点进行授权(权限)_Asp.net Mvc_Authorization - Fatal编程技术网

Asp.net mvc MVC Windows身份验证-对整个站点进行授权(权限)

Asp.net mvc MVC Windows身份验证-对整个站点进行授权(权限),asp.net-mvc,authorization,Asp.net Mvc,Authorization,我已经看到authorizeAttribute可以为每个单独的控制器工作,我想做的是将整个站点权限设置为一个广告组,这是很容易做到的,还是我应该将authattrib行复制并粘贴到每个控制器上 感谢@asawyer提到的为您的案例使用全局过滤器是一种很好的做法。关于您在评论中提出的问题的另一部分:在全局筛选器中,我在哪里指定允许哪些广告组使用网站?您可以在自定义授权属性的OnAuthorization方法中指定角色,如: public class MyAuthAttribute: Authori

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


感谢@asawyer提到的为您的案例使用全局过滤器是一种很好的做法。关于您在评论中提出的问题的另一部分:
在全局筛选器中,我在哪里指定允许哪些广告组使用网站?
您可以在自定义授权属性的
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中

添加一个全局过滤器,如此人在该问题中演示的那样:在全局过滤器中,我在哪里指定允许哪些广告组使用该网站?也许本文会有用:如果你有单独的问题,你应该发布它们,而不是在评论中提问。然而,由于今天早上碰巧我面前有这段代码,您需要做的是从
AuthorizeAttribute
创建一个新的派生属性,并重写
OnAuthorization
方法来执行您的自定义逻辑。@VladimirBozic这是一篇很棒的帖子,谢谢!我把它作为书签以备将来参考。