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