匿名用户无法从文档库打开 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 社区