メディエータパターンを使用してリクエストパイプラインを作成します。ステップの1つがAuthorizationである場合。 AdminAuthorizerクラスは次のように定義されています:.NETCore2コントローラにAuthorize属性を設定せずにユーザーを設定する方法
public AdminAuthorizer(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public virtual async Task Authorize(TRequest message)
{
var user = _httpContextAccessor.HttpContext.User;
...
}
問題は、私は、コントローラのアクションに[オーソライズ]を指定しない場合HttpContext.Userは「空」であるということです。 apply [Authorize] JWTトークンに情報が入力されます。
[Authorize]
public async Task<IActionResult> SetActive(SetActiveCommand activeMessage)
{
await _mediator.Send(activeMessage);
return Ok();
}
私は私の承認(TRequestメッセージ)メソッドを使用していたリクエストでHttpContext.Userを得ることができるように行う必要がありますか?
これには、services.AddAuthentication()およびapp.UseAuthentication()がありますが、services.AddAuthorization()を指定しない場合は、User/Claimsは取得されません。ありがとう。 – Riga