asp.net – 无法使用PreSendRequestHeaders()覆盖IIS中的http缓
历史:
出于安全考虑,我们的组织希望通过向IIS添加HTTP标头来禁用缓存. 到期:-1 添加这些标头会导致MIME“application / vnd.ms-excel”响应类型在IE6中通过SSL进行故障转移.微软承认这是一个错误(http://support.microsoft.com/kb/323308),他们的解决方案也有效.但是,这个解决方案必须在整个组织中作为补丁推进,并且面临来自更高管理层的阻力. 问题: //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仍会在发送响应之前附加缓存标头. 问题: 其他: 解决方法
IIS 7.5使用
URL Rewrite extention并添加出站规则以去除Cache-Control标头中的“no-store”值和Pragma标头,这变得更容易.这个规则集可以解决这个问题:
<outboundRules> <rule name="Always Remove Pragma Header"> <match serverVariable="RESPONSE_Pragma" pattern="(.*)" /> <action type="Rewrite" value="" /> </rule> <rule name="Remove No-Store for Attachments"> <conditions> <add input="{RESPONSE_Content-Disposition}" pattern="attachment" /> </conditions> <match serverVariable="RESPONSE_Cache-Control" pattern="no-store" /> <action type="Rewrite" value="max-age=0" /> </rule> </outboundRules> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在visual studio 2013中使用angularjs材质设
- asp.net – compilation debug =“true”和发布模式“relea
- asp.net-mvc – 可在LAN中远程访问的IIS页面,但不能在服务器
- asp.net-mvc – 从DataAnnotation类中渲染LabelFor无标签标
- asp.net-mvc – Sitecore搜索方面和计算字段
- asp.net-mvc – Html.BeginForm()和ajax.beginform()之间的
- asp.net-mvc – ASP.NET MVC切换语言,如何实现?
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误
- 使用带数组的ASP.NET中继器?
- asp.net-web-api – 从asp.net web api定制odata输出
- asp.net – 在代码隐藏中更改文本框BackColor
- asp.net-mvc-4 – MVC 4日期文化问题?
- asp.net-mvc – 在asp.net mvc中存储和检索用户的
- asp.net-mvc-4 – 当模型中存在一对多关系时,MVC
- asp.net-mvc-3 – MVC 3 html.TextBoxFor readon
- asp.net-mvc – ASP.NET核心Razor SDK类库 – 不
- asp.net – 无法加载文件或程序集’Oracle.DataA
- asp.net-mvc – ErrorAttribute vs OnException与
- asp.net-core-mvc – 如何在Asp.Net Core MVC 1.
- asp.net – 信用卡的前四个号码多久更改一次?