如何提取自定义标头值?

时间:2016-08-05 17:21:53

标签: c# asp.net .net asp.net-core .net-core

我从项目中接受的答案中获得了这个确切的代码,我需要将其迁移到ASP.NET Core MVP。

How to extract custom header value in Web API message handler?

var env = Request.Headers.GetValues("environment").First();

如何在.NET Core中实现它?

我希望这不是一个重复的问题,因为我试图用新系统而不是旧系统来做这件事。如果有人在关于当前版本的链接中添加答案,我也会没事的。

修改:Where all types for http headers gone in ASP.NET 5?我尝试过此链接,但API可能已更改。我不认为这也是该问题的重复。

2 个答案:

答案 0 :(得分:34)

Request.Headers返回定义下一个属性的Microsoft.AspNetCore.Http.IHeaderDictionary接口:

StringValues this[string key] { get; set; }
  

IHeaderDictionary与IDictionary具有不同的索引器合约,它将返回StringValues.Empty以查找缺少的条目。

     

返回类型:Microsoft.Extensions.Primitives.StringValues

     

返回:存储的值,如果键不存在,则返回StringValues.Empty。

因此,您只需使用Request.Headers["environment"]即可获得"环境"的价值。头

答案 1 :(得分:4)

由于这个答案被查看了很多,您也可以通过在参数中使用属性来访问这些字段。下面是一个例子:

enter image description here

在请求中,您可以访问正文、查询字符串或标题中的任何字段。以下是有关授权标头的 Postman 示例:

enter image description here