在 DelegatingHandler 中添加 webapi Header

Add webapi Header in a DelegatingHandler

我正在尝试向 webapi 项目的委托处理程序中的请求添加 header 像这样:

protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
{
    var corGuid = CommonBaseController.CreateSafeCorrelationId(string.Empty);
    cor = corGuid.ToString();
    request.Content.Headers.Add("correlationId", cor);
    var response = await base.SendAsync(request, cancellationToken);
}

进入控制器后,我希望能够像这样获得 header:

var cor = request.Headers["correlationId"];

但是 header 不存在。

如何将值存储在 HttpRequestMessage.Properties 中?

委托处理程序:

request.Properties.Add("correlationId", CommonBaseController.CreateSafeCorrelationId(string.Empty).ToString());

A​​pi控制器:

var id = Request.Properties["correlationId"];

我使用了错误的请求 Object。 Headers 没有出现在 HttpContext.Current.Request 中,而是出现在控制器的 base.Request object 中。

谢谢