匿名用户无法从文档库打开 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 社区。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈