在页面生命周期的哪个阶段,web.config 中的 customHeaders 会添加到页面中?一份 MSN 引用资料显示,在请求到达页面处理程序之前,已将 header 添加到响应中。 既然我可以看到两个地方的 header 被清除,为什么没有一个 header 被清除?
我可以在我们的一个页面模板中看到 OnInit 覆盖后面的代码:
Response.ClearHeaders();
Response.AppendHeader("Cache-Control", "no-store");
web.config 中的 header
<customHeaders>
<clear />
<add name="X-XSS-Protection"...etc
渲染的页面响应 header 同时具有“Cache-Control”和“X-XSS-Protection”以及其他 header 。由于 .NET 代码和 web.config 都会清除 header ,因此我希望其中一个会清除另一个,但这种情况并没有发生。
这是在 IIS 7.5 中的经典模式(如果有影响的话)。
最佳答案
当 ASP.NET 生成响应后,将添加自定义 header 作为后处理的一部分。因此,您的 ASP.NET 代码将无法删除 web.config 中定义的自定义 header 。
clear
元素清除自定义 header 元素的配置 - 它不会清除响应本身的 header 。如果您继承了配置值(例如,如果 machine.config 中有一个 customHeaders 元素并且您希望在站点级别覆盖它),这是重置配置的一种方法。
关于c# - ASP.NET/IIS,web.config 中的 <customHeaders> 何时添加到页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42168144/