Condividi tramite


Gli utenti anonimi non possono aprire file XLSX da una raccolta documenti

Sintomi

Prendi in considerazione lo scenario seguente:

  • Sito di pubblicazione o sito con la funzionalità "ViewFormPagesLockDown" abilitata.
  • Il sito è configurato per l'accesso anonimo.
  • Il sito contiene una raccolta documenti.
  • La raccolta documenti contiene un file con estensione . XLSX (formato Excel 2007 o superiore).
  • Un utente anonimo fa doppio clic su . XLSX per aprirlo.

Sharepoint tenta di aprire il file usando il servizio Web XL. L'utente visualizza il messaggio "Operazione in corso" e quindi riceve l'errore seguente:

Excel Web Access Si è verificato un errore.
Accesso negato

Causa

Gli utenti anonimi non dispongono dei diritti "OpenItems" per la raccolta documenti.

Risoluzione

Per risolvere questo problema, è possibile implementare tre soluzioni diverse.

Risoluzione 1

Interrompere l'ereditarietà delle autorizzazioni nella raccolta documenti.

Risoluzione 2

Note

La disabilitazione della funzionalità "ViewFormPagesLockDown" consente agli utenti anonimi di visualizzare i diritti di origine per determinati file che potrebbero contenere informazioni riservate.

Disabilitare la funzionalità "ViewFormPagesLockDown" nella raccolta siti usando stsadm:

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

Risoluzione 3

Note

L'autorizzazione "OpenItems" anonima consente agli utenti anonimi di avere diritti di origine per determinati file che potrebbero contenere informazioni riservate.

Concedere a livello di codice l'autorizzazione "OpenItems" a SPWeb agli utenti anonimi. Si noti che è consigliabile farlo solo se si comprendono e si accettano le implicazioni per la sicurezza. Per aggiungere l'autorizzazione "Apri elementi" è possibile usare lo script di esempio seguente:

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

Ulteriori informazioni

Pianificare la sicurezza per un ambiente di accesso anonimo esterno (Office SharePoint Server)

Serve ancora assistenza? Visitare la community di SharePoint.