Dela via


Anonyma användare kan inte öppna XLSX-filer från ett dokumentbibliotek

Symptom

Föreställ dig följande scenario:

  • En publiceringswebbplats eller en webbplats som har funktionen ViewFormPagesLockDown aktiverad.
  • Webbplatsen är konfigurerad för anonym åtkomst.
  • Webbplatsen innehåller ett dokumentbibliotek.
  • Dokumentbiblioteket innehåller en fil med tillägget . XLSX (Excel 2007 eller senare format).
  • En anonym användare dubbelklickar på . XLSX för att öppna den.

Sharepoint försöker öppna filen med hjälp av XL-webbtjänsten. Användaren ser meddelandet "Åtgärden pågår" och får sedan följande fel:

Excel Web Access Ett fel har uppstått.
Åtkomst nekad

Orsak

Anonyma användare har inte "OpenItems"-rättigheter i dokumentbiblioteket.

Åtgärd

Tre olika lösningar kan implementeras för att lösa problemet.

Lösning 1

Dela upp arv av behörigheter i dokumentbiblioteket.

Lösning 2

Kommentar

Om du inaktiverar funktionen "ViewFormPagesLockDown" kan anonyma användare ha behörighet att visa källrättigheter till vissa filer som potentiellt kan innehålla känslig information.

Inaktivera funktionen "ViewFormPagesLockDown" i webbplatssamlingen med stsadm:

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

Lösning 3

Kommentar

Genom att ge anonyma "OpenItems"-behörigheter kan anonyma användare ha behörighet att visa källrättigheter till vissa filer som potentiellt kan innehålla känslig information.

Ge programmatiskt "OpenItems" behörighet till SPWeb till anonyma användare. Observera att du bara bör göra det om du förstår och accepterar säkerhetskonsekvenserna. Följande exempelskript kan användas för att lägga till behörigheten "Öppna objekt":

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

Mer information

Planera säkerhet för en extern anonym åtkomstmiljö (Office SharePoint Server)

Behöver du fortfarande hjälp? Gå till SharePoint Community.