AuthenticationHeaderValue

AuthenticationHeaderValue

如何从ASP.NET Core控制器的命名空间System.Net.Http.Headers中获取强类型的头文件类?在从Controller派生的控制器中,Request.Headers是可用的,但它仅返回IHeaderDictionary。还有一个扩展方法HeaderDictionaryTypeExtensions.GetTypedHeaders,但是它返回RequestHeaders,它仅具有某些标头。类HttpRequestHeaders具有最全面的标题列表,但是尚不清楚如何访问它。

例如,您将如何获得AuthenticationHeaderValue?一个选项是AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]),但是需要对标题名称进行硬编码。也许有一种非硬编码的方式可以到达HttpRequestHeaders.Authorization

最佳答案

使用AuthenticationHeaderValue将标头字符串解析为具有SchemeParameter属性的对象。

var auth = AuthenticationHeaderValue.Parse(Request.Headers[HeaderNames.Authorization]);

if (auth.Scheme != expectedScheme || !MyVerifyAuthParamteter(auth.Parameter)) ...

10-06 06:37