在我的应用程序中,我需要设置一个http响应头。我想在web.config中执行此操作。
答案 0 :(得分:57)
执行此操作的最佳方法是<customHeaders>
文件的web.config
元素。请注意,这仅适用于IIS 7及更高版本。
添加示例标头的配置为:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Language" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
答案 1 :(得分:10)
<强>解决方案强> 最后,经过长时间的搜索,我找到了解决方案。使用以下代码创建一个类:
public class myHTTPHeaderModule : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.EndRequest += new EventHandler(context_EndRequest);
}
void context_EndRequest(object sender, EventArgs e)
{
HttpResponse response = HttpContext.Current.Response;
response.AddHeader("Content-Language", "*");
}
#endregion
}
(不要问我为什么要使用这个活动,但它确实有效..)
现在在HttpModule部分的web.config中添加一行:
<httpModules>
<add type="namespace.myHTTPHeaderModule, assembly name" name="headers" />
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
就是这样!
答案 2 :(得分:1)
您始终可以将项目添加到configuration.appSettings部分。
然后您的母版页,自定义基页类或特定页面可以通过从web.config中读取来设置这些http标头
答案 3 :(得分:1)
我不知道你可以在web.config
上做到这一点到目前为止,我知道你有最好的选择:
这里有MSDN参考:
此链接具有HTTPModule的实现,似乎是您需要的
答案 4 :(得分:1)
我相信这里没有一个答案是全面的,所以这是我的:
请参阅我的博客文章,了解如何添加自定义HTTP模块以添加/删除HTTP标头here。虽然我试图解决的问题不同但我也需要添加/删除HTTP标头。博客文章的要点如下:
执行此操作的事件是HttpContext.PreSendRequestHeaders。您也可以从IIS设置或IIS的配置执行此操作,如IIS Knowledge base所示。此配置文件(applicationHost.config)位于 %WinDir%\ System32 \ Inetsrv \ Config \ applicationHost.config ,用于默认安装。
答案 5 :(得分:0)
没有内置功能可以执行此操作
您可以创建一个从web.config读取标头的HttpModule
,并将其添加到响应中。