何时在ASP.NET Web表单中创建响应标头?

时间:2010-04-23 16:33:16

标签: asp.net header

我在某处读到了添加后无法删除响应标头的地方。考虑到这一点,我想知道在标准的ASP.NET Web表单应用程序中最初添加响应头的位置。例如,这些:

Date Fri, 23 Apr 2010 16:25:56 GMT
Server Microsoft-IIS/6.0
X-Powered-By ASP.NET
Cache-Control private

我可以阻止它发生吗?后续标头是否覆盖旧标头?我的问题是否有意义?

2 个答案:

答案 0 :(得分:3)

IIS添加了X-Powered-By: ASP.NET标头。您可以通过在HTTP标头选项卡上编辑“自定义HTTP标头”来全局或基于每个站点删除此内容。

答案 1 :(得分:3)

您提到的标头由IIS自动添加。更改它们的说明是在Serverfault here上发布的问题。

但要回答你关于什么时候的问题,我相信你会记得你读错了什么。

我相信您所指的是,一旦将内容发送回浏览器,您就无法修改任何http标头。只要您使用Response.Write或Response.Redirect方法,就会在Rendering事件中发生这种情况。

修改 - 添加

顺便提一下,一旦发送标题,您就无法做很多事情......使用Response.Redirect等修改Cookie

请参阅以下链接:

Why do I get "Cannot redirect after HTTP headers have been sent" when I call Response.Redirect()?

http://www.bing.com/search?q=HTTP+headershave+been+sent&src=IE-SearchBox&FORM=IE8SRC

添加更多

最后 - 一个更好的答案。我正在寻找发送httpheaders的页面生命周期中的事件。实际上,它们是由HttpApplication对象发送的。在此之前触发的事件是PreSendRequestHeaders eventthis article