0

我自定义了 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(Roles="admin,super-admin")]

4

1 回答 1

0

默认情况下,它从基础Authorize类中继承 Roles 属性,因此您可以使用 Roles 属性直接获取角色

例如

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

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

于 2015-06-13T15:43:06.260 回答