2010-05-27 78 views

回答

9

解決方案 最後,經過漫長的搜索,我找到了解決方案。與此代碼創建一個類:

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> 

就是這樣!

+0

請在這裏查看關於此主題的博客文章:http://sudhanshutheone.net/2013/10/14/internet-explorer-cannot-download-over-https/。雖然我試圖解決的問題是不同的,但我需要添加/刪除HTTP頭。要做到這一點的事件是HttpContext.PreSendRequestHeaders。您也可以從IIS設置或IIS的配置中執行此操作,如下所示:http://www.iis.net/configreference/system.webserver/httpprotocol/customheaders – dotnetguy 2013-10-16 06:26:07

1

您可以隨時將一個項目添加到configuration.appSettings部分。

然後你的母版頁,自定義的基本頁面類,或一個特定的頁面可通過從web.config

1

閱讀設置這些HTTP報頭我不知道你能做到這一點在web.config中

到目前爲止,我所知道的最好的選擇,你必須是:

  • 創建一個HttpModule,你設置的標頭的所有響應
  • 添加頁眉上的IIS

在這裏你有MSDN上的參考:

Custom HttpModule Example

此連結,這似乎是你所需要的

http://idunno.org/archive/2006/08/01/252.aspx

+0

如何創建HTTPModule來設置標題? – Martijn 2010-05-28 07:41:04

+0

添加您需要的信息 – 2010-05-28 12:46:58

0

沒有一個HttpModule的實現內置的功能,這樣做

喲你可以製作一個HttpModule,它從web.config中讀取標題並將它們添加到響應中。

+0

我該怎麼做? – Martijn 2010-05-28 07:40:39

48

執行此操作的最佳方法是web.config文件的<customHeaders>元素。請注意,這僅適用於IIS 7及更高版本。

配置以添加你的榜樣頭是:

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

欲瞭解更多信息,請參閱IIS "Custom Headers" Configuration Reference page

+0

問題在於,它僅適用於IIS> = 7,如果你有IIS6,那你的運氣不好。 – 2014-12-10 12:44:00

1

我相信沒有一個答案這裏是全面的,所以這裏是我的:

請請參閱我的博客文章,瞭解如何添加自定義HTTP模塊以添加/刪除HTTP標頭here。雖然我試圖解決的問題是不同的,但我也需要添加/刪除HTTP標頭。博客帖子的要點如下:

要做到這一點的事件是HttpContext.PreSendRequestHeaders。您也可以從IIS設置或IIS的配置中執行此操作,如IIS Knowledge base所示。對於默認安裝,此配置文件(applicationHost.config)位於%WinDir%\ System32 \ Inetsrv \ Config \ applicationHost.config

相關問題