トークンベースの認証を実装しました。 カスタム権限属性を書きたいと思います。Asp.net WebApiのカスタム認証は、許可属性のためだけに呼び出します
この理由は、UserIdentity.GetUserId()がnullを返すことがあるためです。
これを処理するために、私は次のようなカスタムauthorize属性を記述しました。
このカスタム権限は、すべてのコール(匿名または権限のあるコール)をコールします。 したがって、IsAuthorizeCallプロパティを使用して、呼び出しが匿名または許可されているかどうかを確認しました。
このような呼び出しを行うことはできますか?上記の方法を記述した場合にのみ、このカスタムオーサーを呼び出したいと思います。さもなければ、これは呼び出されません。
どうすればいいですか?
public class CustomAuthorize : AuthorizationFilterAttribute
{
public bool IsAuthorizeCall { get; set; }
public override void OnAuthorization(HttpActionContext actionContext)
{
base.OnAuthorization(actionContext);
if (IsAuthorizeCall)
{
IdentityHelper IdentityHelper = new IdentityHelper();
if (IdentityHelper.UserId== Guid.Empty)
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
}
}
}
は、参照:
Custom Authorization in Asp.net WebApi - what a mess?
How to Customize ASP.NET Web API AuthorizeAttribute for Unusual Requirements