向ARR请求添加自定义标头

时间:2012-11-27 17:44:26

标签: iis reverse-proxy iis-arr

我正在使用ARR作为反向代理在IIS后面运行服务。我知道传递了x-forwarded-forx-arr-log-id标头。但是,我想要的是传入的私钥,以便后备应用程序显式知道请求不是本地的(即使ARR服务器是)。我已经看到一些关于添加/替换服务器变量的帖子,但这似乎不是通过支持应用程序上的请求头来实现的。

我猜测必须有一些web.config设置可以做到这一点,但到目前为止找不到运气。

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

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

2 个答案:

答案 0 :(得分:9)

IIS.net提供的答案似乎是相关网址重写模块的一部分:

  

使用与服务器相同的机制设置请求标头   变量,但具有特殊的命名约定。如果是服务器变量   集合中的名称以“HTTP_”开头,然后是此   导致根据请求设置HTTP请求标头   遵循命名惯例:

     

名称中的所有下划线(“_”)符号都将转换为短划线符号   ( “ - ”)。所有字母都转换为小写字母。 “HTTP_”前缀是   删除例如,以下配置用于设置   请求上的自定义x-original-host标头:

     

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

答案 1 :(得分:5)

尝试:

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

http请求的标头字段为:x-private-token