我正在使用ARR作为反向代理在IIS后面运行服务。我知道传递了x-forwarded-for
和x-arr-log-id
标头。但是,我想要的是传入的私钥,以便后备应用程序显式知道请求不是本地的(即使ARR服务器是)。我已经看到一些关于添加/替换服务器变量的帖子,但这似乎不是通过支持应用程序上的请求头来实现的。
我猜测必须有一些web.config设置可以做到这一点,但到目前为止找不到运气。
示例:X-PRIVATE-TOKEN: We are the children of Korn!
因此我可以相信x-forwarded-for
地址是实际地址,而不是简单地不信任所有代理请求的IP地址引用。
答案 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