Symptom
När du har installerat någon av följande uppdateringar går det inte att återge vissa spöksidor i Microsoft SharePoint:
-
Beskrivning av säkerhetsuppdateringen för SharePoint Server 2019: 8 september 2020 (KB 4484505)
-
21 september 2020, uppdatering för SharePoint Server 2019 (KB4461512)
-
Beskrivning av säkerhetsuppdateringen för SharePoint Foundation 2013: 8 september 2020 (KB 4484525)
-
Beskrivning av säkerhetsuppdateringen för SharePoint Foundation 2010: 8 september 2020 (KB 4486667)
Till exempel återges inte Microsoft Identity Manager-portalsidor och vissa anpassade sidor som distribueras via SharePoint Solution.
Dessutom kan du uppleva en eller flera av följande scenarier.
Scenario 1
Den blockerade spöksidan visar något av följande felmeddelanden:
-
Attributet "autoeventwireup" är inte tillåtet på den här sidan.
-
Attributet "enablesessionstate" är inte tillåtet på den här sidan.
-
Kodblock tillåts inte i den här filen.
-
Händelsehanteraren OnSelectedIndexChanged är inte tillåten på den här sidan.
Obs! Händelsen i det senaste felmeddelandet kan också vara en annan händelse, till exempel "VidKlickning".
Scenario 2
Den blockerade spöksidan visar följande felmeddelande:
UnsafeControlException: En webbdel eller en webbformulärkontroll på den här sidan kan inte visas eller importeras. Det gick inte att hitta typen eller så är den inte registrerad som säker.
Scenario 3
Den blockerade spöksidan visar följande felmeddelande:
Den refererade filen "/_layouts/somedirectory/affectedusercontrol.ascx" är inte tillåten på den här sidan.
Orsak
Spöksidor lagras i filsystemet. Säkerhetsnivån förbättras genom att serverbaserade skript och osäkra kontroller används. En spöksida kan blockeras från rendering om följande villkor är sanna:
-
Den spöksidan innehåller radkod eller serverbaserade skript.
-
Kodtypen eller webbdelstypen är inte registrerad som säker.
Lösning för scenario 1
Lös problemet genom att lägga till ett nytt PageParserPath-element som har ett VirtualPath-attribut i Web.config-filen under elementet configuration/SharePoint/SafeMode/PageParserPaths.
Du får till exempel följande felmeddelande:
"Attributet 'autoeventwireup' är inte tillåtet på den här sidan."
I så fall kan du lägga till ett PageParserPath-element enligt följande:
<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>
Om alla sidor i samma virtuella katalog måste vara avblockerade kan du använda ett PageParserPath-element på följande sätt:
<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 är sökvägen till den blockerade sidan.
-
VirtualPath måste referera till en sida som är spöksida och inte kan avvärderas av en användare eller en katalog som innehåller en sådan sida.
-
VirtualPath måste referera till en sida som inte refererar till en annan sida eller en huvudsida som kan avvärderas eller en katalog som inte innehåller en sådan sida eller huvudsida.
-
DirectFileDependencies anger antalet tillåtna direkta filberoenden. Om du får ett felmeddelande, till exempel "antalet tillåtna direkta filberoenden överskrider gränsen", ändrar du det här värdet.
Lösning för scenario 2
Du kan lösa problemet genom att lägga till ett nytt SafeControls-element för en viss typ, namnområde och ett starkt sammansättningsnamn i Web.config-filen under konfigurations-/SharePoint/SafeControls-elementet enligt beskrivningen i SafeControls-elementet (Lösning). Ställ sedan in attributet Safe till SANT.
Mer information om formatet för attributvärden i elementet SafeControls finns i tabellen i steg 12 i avsnittet "Markera säkra kontroller i paketdesignern" i Så här: Markerakontroller som säkra kontroller .
Lösning för scenario 3
Du kan lösa problemet genom att lägga till ett nytt SafeControls-element som använder attributet Src i Web.config-filen under konfigurations-/SharePoint/SafeControls-elementet.
Du får till exempel följande felmeddelande:
"Referensfilen "/_layouts/somedirectory/affectedusercontrol.ascx" är inte tillåten på den här sidan."
I det här fallet kan du lägga till elementet SafeControls, som i följande exempel:
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls> <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" /> </SafeControls>