gpt4 book ai didi

c# - IE8 不会在启用 UAC 的情况下下载具有自定义 MIME/类型的文件

转载 作者:太空狗 更新时间:2023-10-29 22:56:00 24 4
gpt4 key购买 nike

我有一个在本地计算机(Windows 7 x64、IE8、.net 3.5、C#)上运行的 .net 服务,该服务将文件返回到浏览器以响应用户操作。使用 firefox 或 chrome,文件被正确下载,我们的应用程序通过自定义 mime 类型启动,一切都很好。

但是,在 IE8 中,我收到一个对话框“无法从 .

使用 fiddler,我验证了 IE 确实从服务接收了负载。

如果我关闭 UAC,IE 会下载文件并启动关联的应用程序。

关闭 UAC 不是一个可行的解决方案,因为我们的客户会启用它。

如何让 IE8 在启用 UAC 的情况下启动关联的应用程序?

编辑:

按照here所述,使用程序化 ID 重新注册 MIME 类型后,我可以让 IE 打开显示“打开或保存”对话框第二次从地址栏请求链接。为什么它第一次不起作用?

最佳答案

我今天能够解决这个问题。事实证明,代码隐藏正在将响应的 CacheControl 属性设置为 HttpCacheability.NoCache。删除那行代码解决了这个问题。修复的另一半是使用 ProgId 正确注册 mime 类型和文件扩展名。

我将响应精简为 content-disposition: attachment; filename=xxx 和字符串数据的二进制写入。 IE 正确显示“打开”或“保存”对话框,即使 mime 嗅探将文件报告为 text/html(实际上应该是 text/plain)。

我添加回内容类型 header 并重新测试,然后是 nosniff 选项并重新测试,最后是缓存控制。在每次测试之间,我重新启动了 VM 以确保它是一个原始的测试环境(即没有缓存或预加载)。只有缓存控制线以负面方式影响行为。

关于c# - IE8 不会在启用 UAC 的情况下下载具有自定义 MIME/类型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2133776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com