0

Asp.Net のauthorize属性をカスタマイズしましたが、属性をメソッドまたはクラスに設定するときに、属性に設定したロールを取得する方法がわかりません。

たとえば、私はこの 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;
    }

または、カスタム Authorization 属性に属する新しいプロパティを作成して使用します。

于 2015-06-13T15:43:06.260 に答える