使用 IIS 检查请求中是否存在 header 以及值

Check if header is present in request with IIS and the value

我如何检查 IIS 8 上是否存在请求 header 并且此 header 的值例如是“1234”?

我正在尝试以 500 错误响应,例如,如果 header 不存在或值不是“1234”,因此如果您没有秘密值则无法访问。

在 IIS 上可以吗?我检查了所有可用的服务器变量,但没有找到对 Request headers 的任何引用。 https://docs.microsoft.com/en-us/iis/web-dev-reference/server-variables

一个请求header是一个HTTPheader,可以在HTTP请求中用来提供请求上下文的信息,所以我建议你可以尝试使用自定义HTTPheaders 处于 urlrewrite 条件:

  • 自定义 header 需要在前面加上“HTTP_”。
  • 用下划线替换破折号

例如:为了检索自定义header“x-app-version”,您可以使用“HTTP_x_app_version”。所以 thr urlrewrite 配置应该是这样的:

<rule name="test" enabled="false">
 <match url="(.*)" />  
  <conditions>
   <add input="{HTTP_x_app_version}" pattern="^1234$" />
  </conditions>
  <action type="Redirect" url="your url" />
</rule>