歷史:
出於安全的考慮,我們的企業希望通過增加HTTP標頭IIS禁用緩存。無法覆蓋IIS使用PreSendRequestHeaders()HTTP緩存頭
截止日期:-1
雜注:無緩存
緩存控制:無緩存,無店鋪
添加這些頭引起MIME 「應用程序/ vnd.ms - Excel中」 響應類型以故障轉移SSL在IE6。微軟認爲這是一個錯誤(http://support.microsoft.com/kb/323308),他們的解決方案也可以工作。然而,這個解決方案必須作爲整個組織的補丁,並面臨來自更高管理層的阻力。
問題:
同時,我們正在努力尋找通過重寫IIS設置的HTTP標有MIME類型 「application/vnd.ms-Excel的」 頁面使用替代品的HttpModules 上PreSendRequestHeaders()功能
//this is just a sample code
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += new EventHandler(context_PreSendRequestHeaders);
}
protected void context_PreSendRequestHeaders(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
if(application.Response.ContentType == "application/vnd.ms-excel; name=DataExport.xls")
{
application.Response.ClearHeaders();
application.Response.ContentType = "application/vnd.ms-excel; name=DataExport.xls";
application.Response.AddHeader("Content-Transfer", "Encoding: base64");
application.Response.AddHeader("Content-Disposition", "attachment;filename=DataExport.xls");
application.Response.AddHeader("cache-control","private");
}
}
即使在使用ClearHeaders()清除標頭後,IIS仍會在發送響應之前附加緩存標頭。
問題:
是採用PreSendRequestHeaders()函數錯誤ClearHeaders()的這種做法? 使用ASP.NET 1.1中提供的庫,它們是否可以替代緩存頭(Expires,Pragma,cache-control)?
其他:
我們使用
瀏覽器:IE6 SP 3
服務器:IIS 6
平臺:.NET 1.1