2014-09-04 60 views
0

我使用多个角色不工作

Authorize[Roles = "Agent")] 

这一直工作正常,但现在我要检查,如果他们也是在付费用户组,我想我可能只是这样做:

Authorize[Roles = "Agent, Paid")] 

但是,上述工作不正常,似乎是检查我是否在他们中的任何角色,而不是如果我在两个。我在这里做什么?

回答

1

你应该做你的自定义Authorize Attribute

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 
    } 

} 

DEMO:

[AuthorizeMultiple(MultipleRoles ="Agent,Paid")] 
+0

我不理解怎么办的逻辑,我知道我必须检查是否有角色中,如果没有返回false但如何我得到的角色来检查? – Michael 2014-09-04 09:19:52