匿名用户无法从文档库打开 XLSX 文件

症状

请考虑以下情况:

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

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

ExcelWeb 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 社区