2016-10-04 12 views
7

Jak uzyskać silnie typowaną klasę nagłówka z przestrzeni nazw System.Net.Http.Headers ze sterownika ASP.NET Core? W kontrolerze pochodzącym z Controller, dostępna jest Request.Headers, ale po prostu zwraca IHeaderDictionary. Istnieje również metoda rozszerzenia HeaderDictionaryTypeExtensions.GetTypedHeaders, ale zwraca ona RequestHeaders, która ma tylko określone nagłówki. Klasa HttpRequestHeaders ma najbardziej obszerną listę nagłówków, ale nie jest jasne, jak uzyskać do niej dostęp.Uzyskaj silnie typową klasę nagłówka w języku ASP.NET Core

Na przykład, jak można uzyskać AuthenticationHeaderValue? Jedną opcją jest AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]), ale wymaga to twardego kodowania nazwy nagłówka. Być może istnieje niezbyt zakodowany sposób dostępu do HttpRequestHeaders.Authorization.

+0

Możliwy duplikat [Gdzie wszystkie typy dla nagłówków HTTP, pragnąc w ASP.NET 5?] (Http://stackoverflow.com/questions/29706719/where-all-types-for-http-headers-gone -in-asp-net-5) – Tseng

+0

@Tseng To inne pytanie ma zaakceptowaną odpowiedź opartą na 'RequestHeaders', która jest przydatna dla niektórych nagłówków, ale nie dla innych. To pytanie skupia się na tym, jak uzyskać bardziej wszechstronne 'HttpRequestHeaders' dostępne w ASP.NET Core 1.0. –

+0

Opublikowałem to pytanie jako problem w [projekcie GitHub] (https://github.com/aspnet/Mvc/issues/5680). –

Odpowiedz

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