0
我使用多個角色不工作
Authorize[Roles = "Agent")]
這一直工作正常,但現在我要檢查,如果他們也是在付費用戶組,我想我可能只是這樣做:
Authorize[Roles = "Agent, Paid")]
但是,上述工作不正常,似乎是檢查我是否在他們中的任何角色,而不是如果我在兩個。我在這裏做什麼?
我使用多個角色不工作
Authorize[Roles = "Agent")]
這一直工作正常,但現在我要檢查,如果他們也是在付費用戶組,我想我可能只是這樣做:
Authorize[Roles = "Agent, Paid")]
但是,上述工作不正常,似乎是檢查我是否在他們中的任何角色,而不是如果我在兩個。我在這裏做什麼?
你應該做你的自定義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")]
我不理解怎麼辦的邏輯,我知道我必須檢查是否有角色中,如果沒有返回false但如何我得到的角色來檢查? – Michael 2014-09-04 09:19:52