我需要在我的ASP.NET MVC应用程序中授权一个Controller,该用户具有两个角色.
我正在使用Authorize属性,如下所示:
我正在使用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{ }