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

Symptom

Tänk dig följande situation:

  • En publiceringswebbplats eller en webbplats med funktionen 'ViewFormPagesLockDown', aktiverad
  • Webbplatsen är konfigurerad för anonym åtkomst
  • Webbplatsen innehåller ett dokumentbibliotek
  • Dokumentbiblioteket innehåller en fil med filnamnstillägg . XLSX (Excel 2007 eller senare format)
  • En anonym användare dubbelklickar på . XLSX för att öppna det

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

Excel Web Access Ett fel uppstod.
Åtkomst nekad

Orsak

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

Lösning

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

Lösning 1

Bryta arv av behörigheter för dokumentbiblioteket.

Lösning 2

Anteckning

Om du inaktiverar funktionen "ViewFormPagesLockDown" kan anonyma användare visa källbehörigheter för vissa filer som kan innehålla känslig information.

Inaktivera funktionen "ViewFormPagesLockDown" i webbplatssamlingen med stsadm:

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

Upplösning 3

Anteckning

Om du ger anonym "OpenItems"-behörighet kan anonyma användare se källbehörigheter till vissa filer som kan innehålla känslig information.

Programmässigt ger du SPWeb-åtkomstbehörigheten "OpenItems" till anonyma användare. Observera att du bara bör göra det om du förstår & kan acceptera säkerhetsriskerna. Exempelskriptet nedan 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äkerheten för en extern anonym åtkomstmiljö (Office SharePoint Server)

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