Asp.net 是否可以在web.config中添加响应http头?

Asp.net 是否可以在web.config中添加响应http头?,asp.net,Asp.net,在我的应用程序中,我需要设置一个http响应头。我想在web.config中执行此操作。您始终可以向configuration.appSettings部分添加项目 然后,您的母版页、自定义基页类或特定页面可以通过从web.config读取来设置这些http头。我不知道您可以在web.config上进行设置 到目前为止,我知道您最好的选择是: 创建一个HTTPModule,在其中为所有响应设置标题 在IIS上添加标头 这里有MSDN的参考资料: 这个链接有一个HTTPModule的实现,它似

在我的应用程序中,我需要设置一个http响应头。我想在web.config中执行此操作。

您始终可以向configuration.appSettings部分添加项目


然后,您的母版页、自定义基页类或特定页面可以通过从web.config读取来设置这些http头。我不知道您可以在web.config上进行设置

到目前为止,我知道您最好的选择是:

  • 创建一个HTTPModule,在其中为所有响应设置标题
  • 在IIS上添加标头
这里有MSDN的参考资料:

这个链接有一个HTTPModule的实现,它似乎就是您所需要的


没有内置的功能可以做到这一点

您可以创建一个
HttpModule
,从web.config读取标题并将其添加到响应中。

解决方案 经过长时间的搜索,我终于找到了解决办法。使用以下代码创建一个类:

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>


就这样

最好的方法是
web.config
文件的
元素。请注意,这仅适用于IIS版本7及更高版本

添加示例标头的配置为:

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Content-Language" value="*" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>


我相信这里没有一个答案是全面的,所以我的答案是:

请参阅我的博客文章,了解如何添加自定义HTTP模块以添加/删除HTTP头。虽然我试图解决的问题有所不同,但我也需要添加/删除HTTP头。这篇博文的要点如下:


在HttpContext.PreSendRequestHeaders中执行此操作的事件。您也可以通过IIS设置或IIS配置执行此操作,如所示。此配置文件(applicationHost.config)位于默认安装的%WinDir%\System32\Inetsrv\config\applicationHost.config

如何创建一个HTTPModule来设置标题?请参阅我在此主题上的博文:。虽然我试图解决的问题有所不同,但我需要添加/删除HTTP头。在HttpContext.PreSendRequestHeaders中执行此操作的事件。您也可以从IIS设置或IIS的配置中执行此操作,如下所示:问题是,此操作仅适用于IIS>=7,如果您有IIS6,则说明您运气不佳。IIS ref链接现在重定向到: