История
Из соображений безопасности наша организация хочет отключить кэширование, добавив заголовки HTTP в IIS.
Истекает: -1
Прагма: без кеша
Управление кешем: No-cache, No-store
Добавление этих заголовков приводит к тому, что типы ответов MIME " application / vnd.ms-excel " перестают работать SSL в IE6 . Microsoft признает, что это ошибка (http://support.microsoft.com/kb/323308), и их решение также работает. Однако это решение должно быть распространено как исправление во всей организации и сталкивается с сопротивлением со стороны высшего руководства.
Проблема:
Тем временем мы пытаемся найти альтернативы, переопределяя заголовки HTTP набора IIS для страниц, имеющих MIME-тип «application / vnd.ms-excel», используя HTTPModules on PreSendRequestHeaders () function
//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 по-прежнему добавляет заголовки кэша перед отправкой ответа.
Вопросы:
Является ли этот подход использования ClearHeaders () в PreSendRequestHeaders () неправильным?
Есть ли альтернатива переопределению заголовков кэша (Expires, Pragma, cache-control) с использованием библиотек, доступных в ASP.NET 1.1?
Разное:
Мы используем
Браузер: IE6 SP 3
Сервер: IIS 6
Платформа: .NET 1.1