ASP.Net Core 2.0 Как получить все заголовки запросов в промежуточном программном обеспечении?

В ASP.Net Core 2.0 я пытаюсь проверить заголовки входящих запросов в специальном промежуточном программном обеспечении.

Проблема в том, что я не знаю, как извлечь все заголовки пары ключ-значение. Заголовки, которые мне нужны, хранятся в защищенном свойстве

protected Dictionary<string, stringValues> MaybeUnknown

Мой класс промежуточного программного обеспечения выглядит так:

public class HeaderValidation
{
    private readonly RequestDelegate _next;
    public HeaderValidation(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext httpContext)
    {
        IHeaderDictionary headers = httpContext.Request.Headers; // at runtime headers are of type FrameRequestHeaders

        // How to get the key-value-pair headers?
        // "protected Dictionary<string, stringValues> MaybeUnknown" from headers is inaccessbile due to its protection level
        // Casting headers as Dictionary<string, StringValues> results in null

        await _next.Invoke(httpContext);
    }
}

Моя цель - извлечь все заголовки запроса, а не только несколько выбранных заголовков, для которых я должен знать конкретные ключи.

1 ответ

httpContext.Request.Headers это Dictionary, Вы можете вернуть значение заголовка, передав имя заголовка в качестве ключа:

context.Request.Headers["Connection"].ToString()
Другие вопросы по тегам