あなたはSystem.web.Http由来AuthorizeAttributeを実装することができますがあります。 これで、OnAuthorizationメソッドをオーバーライドしてカスタム認証を実行できます。下の例を見てください。
public class ApiAuthorizationFilterAttribute : AuthorizeAttribute {
/// <summary>
/// Performs custom authorization based on incoming request
/// value(header)
/// </summary>
/// <param name="actionContext"></param>
public override void OnAuthorization(HttpActionContext actionContext) {
//Checking for any controller decorated with AllowAnonymousAttribute
bool skipAuthorization = actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes<AllowAnonymousAttribute>().Any();
if (skipAuthorization) {
return;
}
if (!IsAuthorized(actionContext)) {
actionContext.Response = ApiHttpResponseMessage.HandleUnauthorizedRequest(actionContext.Request);
return;
}
if (!IsUserAuthorized(actionContext)) {
actionContext.Response = ApiHttpResponseMessage.CreateResponse(actionContext.Request, ErrorMessages.INVALID_CMF_EXCEPTION_MESSAGE, HttpStatusCode.Forbidden);
}
}
ありがとうございます。私もこの記事を参考にしていることがわかりました。http://www.infoworld.com/article/2988903/application-architecture/how-to-secure-web-api-using-authorization-filters.html – bitshift