向ARR请求添加自定义标头

Tra*_*er1 10 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地址引用.

mwa*_*rdm 12

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

请求标头是使用与服务器变量相同的机制设置的,但具有特殊的命名约定.如果集合中的服务器变量名称以"HTTP_"开头,则会导致根据以下命名约定设置HTTP请求标头:

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

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


SzB*_*SzB 6

尝试:

<rule name="myRule_01">
  ...
  <serverVariables>
    <set name="HTTP_X_PRIVATE_TOKEN" value="We are the children of Korn!" />
  </serverVariables>
  ...
</rule>
Run Code Online (Sandbox Code Playgroud)

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