获取已设置为自定义授权属性的角色?

时间:2015-06-13 15:20:53

标签: asp.net asp.net-authorization asp.net-authentication custom-authentication

我自定义了Asp.Net的 授权 属性,但是当我将属性设置为方法时,我不知道如何获取我为属性设置的角色或班级

例如,我有这个CustomeAuthorizeAttribute

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class CustomeAuthorizeAttribute : AuthorizeAttribute
{

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {


        if (HttpContext.Current.User.Identity.IsAuthenticated && HttpContext.Current.User.IsInRole("Super"))
        {
            return true;
        }
        else
            return false;
    }
}

但是当我将它们设置为像

这样的属性时,我不知道如何获得角色
  

[CustomeAuthorizeAttribute(角色="管理员,超级管理员&#34)]

1 个答案:

答案 0 :(得分:0)

默认情况下,它会从基本 授权 类中隐藏Roles属性,因此您可以使用Roles属性直接获取角色

例如

if (HttpContext.Current.User.Identity.IsAuthenticated && HttpContext.Current.User.IsInRole(Roles))
    {
        return true;
    }

或者您创建属于自定义Authorization属性的新属性并使用它们。