Sintomi
Dopo aver installato uno degli aggiornamenti seguenti, il rendering di alcune pagine ghost in Microsoft SharePoint non viene eseguito:
-
Aggiornamento del 21 settembre 2020 per SharePoint Server 2019 (KB4461512)
-
SharePoint Enterprise Server 2016: 8 settembre 2020 (KB 4484506)
Ad esempio, non viene eseguito il rendering delle pagine del portale di Microsoft Identity Manager (MIM) e di alcune pagine personalizzate distribuite tramite la soluzione SharePoint.
Inoltre, potrebbero verificarsi uno o più degli scenari seguenti.
Scenario 1
La pagina ghosted bloccata visualizza uno dei messaggi di errore seguenti:
-
L'attributo 'autoeventwireup' non è consentito in questa pagina.
-
L'attributo 'enablesessionstate' non è consentito in questa pagina.
-
I blocchi di codice non sono consentiti in questo file.
-
Il gestore eventi 'OnSelectedIndexChanged' non è consentito in questa pagina.
Nota L'evento nell'ultimo messaggio di errore potrebbe essere anche un altro evento, ad esempio "OnClick".
Scenario 2
La pagina ghosted bloccata visualizza il messaggio di errore seguente:
UnsafeControlException: non è possibile visualizzare o importare una web part o un controllo modulo Web in questa pagina. Il tipo non è stato trovato o non è registrato come sicuro.
Scenario 3
La pagina ghosted bloccata visualizza il messaggio di errore seguente:
Il file di riferimento '/_layouts/somedirectory/affectedusercontrol.ascx' non è consentito in questa pagina.
Causa
Le pagine ghost vengono archiviate nel file system. Il livello di sicurezza è migliorato vietando gli script sul lato server e i controlli non sicuri. Il rendering di una pagina fantasma potrebbe essere bloccato se si verificano le condizioni seguenti:
-
La pagina ghost contiene codice in linea o script sul lato server.
-
Il tipo code-behind o il tipo di web part non è registrato come sicuro.
Risoluzione per lo scenario 1
Per risolvere il problema, aggiungere un nuovo elemento PageParserPath con un attributo VirtualPath al file Web.config nell'elemento configuration/SharePoint/SafeMode/PageParserPaths.
Ad esempio, viene visualizzato il messaggio di errore seguente:
"L'attributo 'autoeventwireup' non è consentito in questa pagina".
In questo caso, è possibile aggiungere un elemento PageParserPath, come indicato di seguito:
<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
<PageParserPaths>
<PageParserPath VirtualPath="/<relativepath>/page.aspx" CompilationMode="Always" AllowServerSideScript="true" AllowUnsafeControls="true"/>
</PageParserPaths>
</SafeMode>
Se tutte le pagine nella stessa directory virtuale devono essere sbloccate, è possibile usare un elemento PageParserPath, come indicato di seguito:
<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
<PageParserPaths>
<PageParserPath VirtualPath="/<relativepath>/*" CompilationMode="Always" AllowServerSideScript="true" AllowUnsafeControls="true" IncludeSubFolders="True"/>
</PageParserPaths>
</SafeMode>
-
VirtualPath è il percorso della pagina bloccata.
-
VirtualPath deve fare riferimento a una pagina con ghosting e che non può essere de-ospitata da alcun utente o a una directory che contiene una pagina di questo tipo.
-
VirtualPath deve fare riferimento a una pagina che non fa riferimento a un'altra pagina o a una pagina master che può essere non ospitata oppure a una directory che non contiene tale pagina o pagina master.
-
DirectFileDependencies indica il numero di dipendenze di file dirette consentite. Se viene visualizzato un messaggio di errore, ad esempio "il numero di dipendenze di file dirette consentite supera il limite", modificare questo valore.
Risoluzione per lo scenario 2
Per risolvere il problema, aggiungere un nuovo elemento SafeControls per il tipo, lo spazio dei nomi e il nome sicuro dell'assembly specificati al file Web.config nell'elemento configuration/SharePoint/SafeControls, come descritto nell'elemento SafeControls (Soluzione). Quindi, impostare l'attributo Safe su TRUE.
Per altre informazioni sul formato dei valori degli attributi nell'elemento SafeControls, vedere la tabella del passaggio 12 nella sezione "Contrassegnare i controlli sicuri in Progettazione pacchetti" di Procedura:Contrassegnare i controlli come controlli sicuri.
Risoluzione per lo scenario 3
Per risolvere il problema, aggiungere un nuovo elemento SafeControls che usa l'attributo Src al file Web.config nell'elemento configuration/SharePoint/SafeControls.
Ad esempio, viene visualizzato il messaggio di errore seguente:
"Il file di riferimento '/_layouts/somedirectory/affectedusercontrol.ascx' non è consentito in questa pagina".
In questo caso, è possibile aggiungere l'elemento SafeControls, come negli esempi seguenti:
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls> <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" /> </SafeControls>