Comment obtenir une classe d'en-tête fortement typé de l'espace de noms System.Net.Http.Headers
à partir d'un contrôleur ASP.NET Core? Dans un contrôleur dérivé de Controller
, Request.Headers
est disponible, mais il renvoie simplement IHeaderDictionary
. Il existe également une méthode d'extension HeaderDictionaryTypeExtensions.GetTypedHeaders
, mais elle renvoie RequestHeaders
, qui n'a que certains en-têtes. La classe HttpRequestHeaders
possède la liste d'en-têtes la plus complète, mais la procédure à suivre pour accéder à cette liste n'est pas claire.Obtenir la classe d'en-tête fortement typé dans ASP.NET base
Par exemple, comment voulez-vous obtenir un AuthenticationHeaderValue
? Une option est AuthenticationHeaderValue.Parse(Request.Headers["Authorization"])
, mais cela nécessite de coder en dur le nom de l'en-tête. Peut-être y a-t-il une façon non codée de se rendre à HttpRequestHeaders.Authorization
.
double possible de [Si tous les types pour les en-têtes HTTP disparu dans ASP.NET 5?] (Http://stackoverflow.com/questions/29706719/where-all-types-for-http-headers-gone -in-asp-net-5) – Tseng
@Tseng Cette autre question a une réponse acceptée basée sur 'RequestHeaders', ce qui est utile pour certains en-têtes, mais pas pour d'autres. Cette question se concentre sur la façon d'obtenir le 'HttpRequestHeaders' plus complet disponible dans ASP.NET Core 1.0. –
J'ai posté cette question comme un problème sur le [projet GitHub] (https://github.com/aspnet/Mvc/issues/5680). –