添加自定义头ARR请求(Adding a custom header to ARR requests

2019-07-04 04:05发布

我使用ARR作为反向代理运行IIS背后服务。 我知道有x-forwarded-forx-arr-log-id被一起传递头。 不过,我想是传递一个私钥,这样的支持应用程序明确地知道该请求是不是本地的(即使ARR服务器)。 我已经看到了添加/更换服务器变量的一些帖子,但是这似乎并没有通过对应用的支持请求头才能通过。

我猜,一定是有web.config中设置,将做到这一点,但有没有运气找到它迄今。

例如: X-PRIVATE-TOKEN: We are the children of Korn!

所以,我可以信任x-forwarded-for地址是实际的地址,而不是简单地不信任一切代理请求的IP地址的引用。

Answer 1:

尝试:

<rule name="myRule_01">
  ...
  <serverVariables>
    <set name="HTTP_X_PRIVATE_TOKEN" value="We are the children of Korn!" />
  </serverVariables>
  ...
</rule>

在HTTP请求的报头字段将是:X-私人令牌



Answer 2:

答案,礼貌IIS.net ,似乎是,这是相关的URL重写模块的一部分:

请求报头被使用相同的机制为服务器变量的设置,但有一个特殊的命名约定。 如果集合中的一个服务器的变量名开头“HTTP_”,那么这导致在按照以下命名惯例被设置的HTTP请求报头:

所有下划线(“_”)的名称符号转换为冲符号(“ - ”)。 所有字母转换为小写。 “HTTP_”前缀被去除。例如下面的配置是用来套在请求中的自定义的x原始主机头:

<set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" />



文章来源: Adding a custom header to ARR requests