我使用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地址的引用。
尝试:
<rule name="myRule_01">
...
<serverVariables>
<set name="HTTP_X_PRIVATE_TOKEN" value="We are the children of Korn!" />
</serverVariables>
...
</rule>
在HTTP请求的报头字段将是:X-私人令牌
答案,礼貌IIS.net ,似乎是,这是相关的URL重写模块的一部分:
请求报头被使用相同的机制为服务器变量的设置,但有一个特殊的命名约定。 如果集合中的一个服务器的变量名开头“HTTP_”,那么这导致在按照以下命名惯例被设置的HTTP请求报头:
所有下划线(“_”)的名称符号转换为冲符号(“ - ”)。 所有字母转换为小写。 “HTTP_”前缀被去除。例如下面的配置是用来套在请求中的自定义的x原始主机头:
<set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" />