2016-10-04 5 views
7

Как получить строго типизированный класс заголовка из пространства имен System.Net.Http.Headers из контроллера ядра ASP.NET? В контроллере, полученном от Controller, доступен Request.Headers, но он просто возвращает IHeaderDictionary. Существует также метод расширения HeaderDictionaryTypeExtensions.GetTypedHeaders, но он возвращает RequestHeaders, который имеет только определенные заголовки. Класс HttpRequestHeaders содержит наиболее полный список заголовков, но неясно, как получить к нему доступ.Получить строго типизированный класс заголовка в ASP.NET Core

Например, если вы нашли AuthenticationHeaderValue? Один из вариантов - AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]), но для этого требуется жесткое кодирование имени заголовка. Возможно, есть не жестко закодированный способ добраться до HttpRequestHeaders.Authorization.

+0

Возможный дубликат [Где все типы для HTTP заголовков прошли в ASP.NET 5?] (Http://stackoverflow.com/questions/29706719/where-all-types-for-http-headers-gone -in-asp-net-5) – Tseng

+0

@Tseng Этот другой вопрос имеет принятый ответ на основе 'RequestHeaders', который полезен для некоторых заголовков, но не для других. Этот вопрос фокусируется на том, как получить более полное 'HttpRequestHeaders', доступное в ASP.NET Core 1.0. –

+0

Я разместил этот вопрос как проблему в проекте [GitHub] (https://github.com/aspnet/Mvc/issues/5680). –

ответ

4
AuthenticationHeaderValue.Parse(Request.Headers[HeaderNames.Authorization]) 

 Смежные вопросы

  • Нет связанных вопросов^_^