【问题标题】:Check if header is present in request with IIS and the value检查带有 IIS 的请求中是否存在标头和值
【发布时间】:2021-04-10 01:07:28
【问题描述】:

如何检查 IIS 8 上是否存在请求标头,并且该标头的值例如是“1234”?

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

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

【问题讨论】:

  • ALL_RAW 有帮助吗?您可能需要编写正则表达式来提取它的标题名称和值。
  • 非常感谢这是我需要的变量

标签: iis iis-8 url-rewrite-module


【解决方案1】:

请求标头是一个HTTP标头,可以在HTTP请求中用于提供有关请求上下文的信息,因此我建议您可以尝试在urlrewrite条件中使用自定义HTTP标头:

  • 自定义标头需要以“HTTP_”开头。
  • 用下划线替换破折号

例如:为了检索自定义标头“x-app-version”,您可以使用“HTTP_x_app_version”。所以 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>

【讨论】:

  • 如果回答有帮助,请点击“接受回答”并点赞。
猜你喜欢
  • 2022-12-29
  • 2020-09-09
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
相关资源
最近更新 更多