c# – ASP.NET MVC授权具有许多角色的用户

前端之家收集整理的这篇文章主要介绍了c# – ASP.NET MVC授权具有许多角色的用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在我的ASP.NET MVC应用程序中授权一个Controller,该用户具有两个角色.
我正在使用Authorize属性,如下所示:

[Authorize(Roles = “Producer,Editor”)]

但是,这允许制作人员和编辑者控制器.我只想允许具有两个角色的用户,而不仅仅是其中之一.

我该怎么办?

解决方法

你应该做你自定义的AuthorizeAttribute
public class AuthorizeMultipleAttribute : AuthorizeAttribute
{

   //Authorize multiple roles
   public string MultipleRoles { get; set; }

  protected override bool AuthorizeCore(HttpContextBase httpContext)
  {
      var isAuthorized = base.AuthorizeCore(httpContext);
      if (!isAuthorized)
      {                
        return false;
      }

      //Logic here
      //Note: Make a split on MultipleRoles,by ','
      //User is in both roles => return true,else return false
  }

}

演示:

[AuthorizeMultiple(MultipleRoles ="Role1,Role2")]
public class UserController{
}

猜你在找的C#相关文章