ここでドキュメントに続いて、ポリシーベースの認証スキームを実装しようとしました。 http://docs.asp.net/en/latest/security/authorization/policies.html#security-authorization-handler-exampleASP.NET 5ポリシーベースの認証ハンドルが呼び出されていない
カスタムAuthorizationHandlerでHandleメソッドが呼び出されていないという問題が発生しました。 (それはここに投げられません)。また、コンストラクタに現在依存関係を注入します。
ここでAuthorizationHandlerコードです。
私が持っているスタートアップでusing WebAPIApplication.Services;
using Microsoft.AspNet.Authorization;
namespace WebAPIApplication.Auth
{
public class TokenAuthHandler : AuthorizationHandler<TokenRequirement>, IAuthorizationRequirement
{
private IAuthService _authService;
public TokenAuthHandler(IAuthService authService)
{
_authService = authService;
}
protected override void Handle(AuthorizationContext context, TokenRequirement requirement)
{
throw new Exception("Handle Reached");
}
}
public class TokenRequirement : IAuthorizationRequirement
{
public TokenRequirement()
{
}
}
}
// Authorization
services.AddSingleton<IAuthorizationHandler, TokenAuthHandler>()
.AddAuthorization(options =>
{
options.AddPolicy("ValidToken",
policy => policy.Requirements.Add(new TokenRequirement()));
});
コントローラのメソッドがあり、このエンドポイントを叩く
// GET: api/values
[HttpGet, Authorize(Policy="ValidToken")]
public string Get()
{
return "test";
}
は何も返さないと
warn: Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker[0]
Authorization failed for the request at filter 'Microsoft.AspNet.Mvc.Filters.AuthorizeFilter'.
のコンソールに警告があります
私はこんにちは属性を正常に持たない他のエンドポイント。
SOS、 ジャック
同じ問題があります。あなたはこれを理解したことがありますか? – rob
はい、私は下に答えました、それはademのコメントにあなたのコメントとインラインで落ちます – Hamburglar