Compartir a través de


Los usuarios anónimos no pueden abrir archivos XLSX desde una biblioteca de documentos

Síntomas

Considere el caso siguiente:

  • Un sitio de publicación o un sitio que tenga habilitada la característica "ViewFormPagesLockDown".
  • El sitio está configurado para el acceso anónimo.
  • El sitio contiene una biblioteca de documentos.
  • La biblioteca de documentos contiene un archivo con la extensión . XLSX (formato Excel 2007 o superior).
  • Un usuario anónimo hace doble clic en . XLSX para abrirlo.

Sharepoint intenta abrir el archivo mediante el servicio web XL. El usuario ve el mensaje "Operación en curso" y, a continuación, recibe el siguiente error:

Excel Web Access Se ha producido un error.
Acceso denegado

Causa

Los usuarios anónimos no tienen derechos de "OpenItems" en la biblioteca de documentos.

Solución

Se pueden implementar tres resoluciones diferentes para resolver este problema.

Resolución 1

Interrumpir la herencia de permisos en la biblioteca de documentos.

Resolución 2

Nota:

Deshabilitar la característica "ViewFormPagesLockDown" permite a los usuarios anónimos tener derechos de origen de vista a determinados archivos que podrían contener información confidencial.

Deshabilite la característica "ViewFormPagesLockDown" en la colección de sitios mediante stsadm:

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

Resolución 3

Nota:

Conceder permiso "OpenItems" anónimo permite a los usuarios anónimos tener derechos de origen de vista a determinados archivos que podrían contener información confidencial.

Asigne mediante programación permiso "OpenItems" al SPWeb a los usuarios anónimos. Ten en cuenta que solo debes hacerlo si entiendes y aceptas las implicaciones de seguridad. El siguiente script de ejemplo se puede usar para agregar el permiso "Abrir elementos":

[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();  

Más información

Planear la seguridad de un entorno de acceso anónimo externo (Office SharePoint Server)

¿Aún necesita ayuda? Visite Comunidad de SharePoint.