匿名用户无法打开文档库中的 .XLSX 文件

本文

请考虑以下应用场景:

  • 启用了 "ViewFormPagesLockDown" 功能的发布网站或网站
  • 网站配置为匿名访问
  • 网站包含文档库
  • 文档库包含扩展名为的文件。.XLSX (Excel 2007 或更高版本格式)
  • 匿名用户双击。.XLSX 以打开它

Sharepoint 会尝试使用 XL Web 服务打开文件。 用户看到 "正在进行的操作" 消息,然后收到以下错误:

Excel Web Access 发生错误。
访问被拒绝

原因

匿名用户不具有对文档库的 "OpenItems" 权限。

分辨率

可以实施三种不同的解决方案来解决此问题。

解决方法1

断开对文档库的权限继承。

解决方案2

备注

如果禁用 "ViewFormPagesLockDown" 功能,则匿名用户可以拥有对某些可能包含敏感信息的文件的 "查看源" 权限。

使用 stsadm 禁用网站集上的 "ViewFormPagesLockDown" 功能:

stsadm -o deactivatefeature -url <site collection url> -filename ViewFormPagesLockDown\feature.xml

解决方案3

备注

授予匿名 "OpenItems" 权限允许匿名用户具有对某些可能包含敏感信息的文件的 "查看源" 权限。

以编程方式向匿名用户提供对 SPWeb 的 "OpenItems" 权限。 请注意,仅当您了解 & 接受安全隐患时才应执行此操作。 下面的示例脚本可用于添加 "打开项目" 权限:

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")  

$siteUrl = "[http://URL_of_your_SITE](http://url_of_your_site/)";  
$site = New-Object Microsoft.SharePoint.SPSite($siteurl);  
$web = $site.OpenWeb();  

$enumPerms = [Microsoft.SharePoint.SPBasePermissions];  

Write-Host $web.AnonymousPermMask64;  
$web.AnonymousPermMask64 = $web.AnonymousPermMask64 -bor $enumPerms::OpenItems  
$web.Update();  
Write-Host $web.AnonymousPermMask64;  

$web.Dispose();  
$site.Dispose();  

详细信息

规划外部匿名访问环境的安全性 (Office SharePoint Server)

是否仍需要帮助? 转到SharePoint 社区