asp.net 有没有一种方法可以强制MS Edge在其内部打开Excel文件,而不是下载它?

jdgnovmf  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(116)

在我的组织中,它使用MS Edge作为默认浏览器,有一个定期更新和经常打开的Excel电子表格,我们在内部IIS服务器上托管,我们从另一个内部ASP.NET网站链接到它,也在IIS上。每次有人点击该链接时,该文件都会再次下载,并且必须在用户的Excel桌面副本中手动打开,即使Edge现在可以查看MS Office文件(通过Office Web应用程序),并且默认情况下此设置处于启用状态。是否启用Edge中的“在浏览器中打开Office文件”选项对发生的事情没有影响。拖放或Ctrl+ O只会让Edge再次“下载”已下载的文件。
我的问题在这里:

  • Edge究竟是如何决定它可以打开哪些MS Office文件的?是否仅支持某些版本的Office?我尝试了默认的.xlsx文件类型和Office 97-2003 .xls文件类型,效果相同;该文件可能没有任何形式的错误或特殊,因为我的测试文件几乎是空的电子表格,只有一个文本单元格
  • 是否有某种机制可以强制浏览器尝试打开它支持的文件,就像a标签上的download属性的相反部分?Content-Disposition: inline看起来像是我要找的,但是在网络选项卡中检查下载时,我发现这个头不存在,所以inline应该是默认值。
  • 我曾考虑嵌入存储在OneDrive中的文档副本,但此功能似乎已被弃用。是这样吗?还是一个组织可以禁用它?

作为最后的手段,我们可以将文档存储为PDF(它本质上是只读的)。
尝试:

  • 使用group policy/registry key强制启用“在浏览器中打开Office文件”选项
  • 只需打开文件的链接
  • 使用Edge打开本地存储的Excel文件

每个人都使用他们的Microsoft帐户登录到Office 365,我也看到这是一项要求。
期望:

  • Excel文件将使用Edge的Office查看器功能在新选项卡中显示给用户

现实:

  • Excel文件已下载
umuewwlo

umuewwlo1#

“在浏览器中打开Office文件”此功能适用于公共可访问的Office文档,但有以下限制。您可以参考这篇文章,并检查您的Excel文件是否符合要求:
OpenInsideViewerIfAppliable功能监视导航,以检测何时观察到与Web相关的文件扩展名(.xls, .docx, pptx等)或Content-Typesapplication/msword, application/vnd.ms-excel等),这表明导航直接指向Office文档,否则该文档将被视为具有非webby MIME类型,因此通常会转换为下载。
如果出现以下情况,则会忽略该功能:

  1. edge://settings中的Open Office files in the browser复选框已关闭
    1.响应包含Content-Disposition:attachment标头
    1.请求包含AuthorizationProxy-Authorization标头
    1.用户从浏览器上下文菜单上的“Save As”项启动下载
    1.引用URL位于有限的豁免域(Office、SharePoint、OneDrive、Blackboard等)上
    1.请求方法不是GET
    1.文件大小未知(例如,Transfer-Encoding: chunked
    1.文件大小超过100mb
    1.浏览器正在隐身模式下运行
    1.文件是从非publicly routable的IP地址提供的

相关问题