カスタム AuthorizeAttribute に問題があります
public class ExplicitAuthorizeAttribute : AuthorizeAttribute
{
private readonly MembershipUserRole[] _acceptedRoles;
public ExplicitAuthorizeAttribute()
{
}
public ExplicitAuthorizeAttribute(params MembershipUserRole[] acceptedRoles)
{
_acceptedRoles = acceptedRoles;
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//Validation ...
}
}
私はこのように使用します:
[ExplicitAuthorize[(MembershipUserRole.Admin, MembershipUserRole.SuperAdmin)]
HttpGet と HttpPost がコントローラーとメソッドを検証するのに完全に機能します。
しかし、ApiController で使用して ajax 呼び出しを行うと、AuthorizeCore が実行されず、セキュリティ違反が発生しました。:/
私の列挙型は次のようになります
[Flags]
public enum MembershipUserRole
{
Admin= 1,
SuperAdmin = 2
}
私の AuthorizeCore がこのコンテキストで検証されない理由を誰かが知っていますか?
ちなみに私が使うなら
[Authorized(Roles ="Admin, SuperAdmin")]
それは完全に検証されますが、Stronly Typed Roles が必要なため、列挙型を使用しています。