DelegatingHandler 内から IHttpContextAccessor インターフェイスとそのデフォルト実装 HttpContextAccessor を使用して、WEB API アクション メソッドに送信された URL パラメータを読み取ろうとしています。
コントローラーは次のようになります。
[HttpPost("{siteName}/{accountID}")]
public async Task<ActionResult<AirRequest>> Post(AirCModel model, string siteName, string accountID)
{
}
DelegatingHandler 内の値 {siteName}/{accountID} を読み取りたい
public class AuthenticationDelegatingHandler : DelegatingHandler
{
private readonly IHttpContextAccessor _httpContextAccessor;
public AuthenticationDelegatingHandler(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var siteNAme = _httpContextAccessor ???
}
}
Startup.cs に HttpContext サービスを挿入しました。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddHttpContextAccessor();
}