ASP.NET/IIS,何时将 web.config 中的 <customHeaders> 添加到页面?

ASP.NET/IIS, When do <customHeaders> in the web.config get added to the page?

web.config 中的 customHeaders 在页面生命周期的什么时候添加到页面?一个 MSN 参考显示 headers 在请求到达页面处理程序之前被添加到响应中。 为什么 headers 的 none 被清除了,因为我可以看到 headers 在两个地方被清除了?

我可以在我们的一个页面模板中看到 OnInit 覆盖后面的代码: Response.ClearHeaders(); Response.AppendHeader("Cache-Control", "no-store");

web.config

中的headers
<customHeaders>
    <clear />
    <add name="X-XSS-Protection"...etc

呈现的页面响应 headers 同时具有 "Cache-Control" 和 "X-XSS-Protection" 以及其他。由于 .NET 代码和 web.config 都清除了 headers,我希望其中一个清除另一个,但这并没有发生。

这是在经典模式下的 IIS 7.5 中,如果有区别的话。

自定义 headers 添加为 post-processing 的一部分,当 ASP.NET 完成生成响应时。因此,您的 ASP.NET 代码将无法删除 web.config.

中定义的自定义 headers

clear 元素清除自定义 headers 元素的配置——它不会从响应本身清除 headers。如果您继承了配置值(例如,如果 machine.config 中有一个 customHeaders 元素并且您希望在站点级别覆盖它),这是一种重置配置的方法。