【问题标题】:Override IHttpModule SetHeaders in web.config覆盖 web.config 中的 IHttpModule SetHeaders
【发布时间】:2018-03-12 15:09:33
【问题描述】:

我有一个在 web.config 中注册的图像处理模块。该模块是一个 IHttpModule。该模块将自定义 HTTP 标头添加到响应中。是否可以在 web.config 中抑制这些标头?我这样做的尝试失败了 - IHttpModule 会覆盖这个 web.config 配置吗?

 <httpProtocol>
  <customHeaders>
    <remove name="TheModuleeader" />
  </customHeaders>
</httpProtocol>

【问题讨论】:

    标签: c# asp.net asp.net-mvc iis


    【解决方案1】:

    有一种方法可以使用出站规则更改/编辑响应标头。例如,此代码正在删除 ServerETag 标头:

    <system.webServer>
        <rewrite>
          <outboundRules>
            <rule name="Remove RESPONSE_Server" >
              <match serverVariable="RESPONSE_Server" pattern=".+" />
              <action type="Rewrite" value="" />
            </rule>
            <rule name="Remove RESPONSE_Server ETag">
              <match serverVariable="RESPONSE_ETag" pattern=".+" />
              <action type="Rewrite" value="" />
             </rule>
          </outboundRules>      
        </rewrite>
    </system.webServer>
    

    您可以对不必要的标题应用类似的规则

    【讨论】:

    • 感谢 Victor,您是正确的,因为这允许您更改/编辑标题值。但是,我正在尝试完全删除标题。
    • 如果您将其重写为空,它将删除它。请试试我上面的规则
    • 我尝试了你的建议。不幸的是,标题没有被删除。仍然返回标头,但带有一个空字符串值。
    猜你喜欢
    • 2012-08-07
    • 2010-12-31
    • 2013-10-15
    • 2010-12-27
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多