Oireet
Kun olet asentanut jonkin seuraavista päivityksistä, jotkin Microsoft SharePointin haamutuneet sivut eivät hahmonnu:
-
21. syyskuuta 2020- ja SharePoint Server 2019 -päivitys (KB4461512)
-
SharePoint Enterprise Server 2016:n suojauspäivityksen kuvaus: 8. syyskuuta 2020 (KB 4484506)
-
SharePoint Foundation 2013:n suojauspäivityksen kuvaus: 8. syyskuuta 2020 (KB 4484525)
Esimerkiksi Microsoft Identity Manager (MIM) -portaalisivut ja jotkin SharePoint-ratkaisun kautta käyttöön otettavat mukautetut sivut eivät hahmonna.
Lisäksi saatat kokea yhden tai useamman seuraavista skenaarioista.
Skenaario 1
Estetty aavemainen sivu näyttää yhden seuraavista virhesanomista:
-
Autoeventwireup-määritettä ei sallita tällä sivulla.
-
Määritettä "enablesessionstate" ei sallita tällä sivulla.
-
Koodilohkoja ei sallita tässä tiedostossa.
-
Tapahtumakäsittelijää OnSelectedIndexChanged ei sallita tällä sivulla.
Huomautus Viimeisessä virhesanomassa voi olla myös jokin muu tapahtuma, kuten "OnClick".
Skenaario 2
Estetty aavesivu näyttää seuraavan virhesanoman:
UnsafeControlException: Tämän sivun verkko-osaa tai WWW-lomakeohjausobjektia ei voi näyttää eikä tuoda. Tyyppiä ei löytynyt tai sitä ei ole rekisteröity turvalliseksi.
Skenaario 3
Estetty aavesivu näyttää seuraavan virhesanoman:
Viitattu tiedosto '/_layouts/somedirectory/affectedusercontrol.ascx' ei ole sallittu tällä sivulla.
Syy
Haamusivut tallennetaan tiedostojärjestelmään. Niiden suojaustasoa parannetaan suojaamalla palvelinpuolen komentosarjoja ja epäluotettavia ohjausobjekteja. Aavemaista sivua ei ehkä voi hahmontaa, jos seuraavat ehdot täyttyvät:
-
Aavemainen sivu sisältää rivi- tai palvelinpuolen komentosarjan.
-
Tyypin tai verkko-osan koodityyppiä ei ole rekisteröity turvalliseksi.
Skenaarion 1 ratkaisu
Voit ratkaista ongelman lisäämällä uuden PageParserPath-elementin, jolla on VirtualPath-määrite Web.config-tiedostoon määrityksen/SharePoint/SafeMode/PageParserPaths-elementin alla.
Näyttöön tulee esimerkiksi seuraava virhesanoma:
"Autoeventwireup-määritettä ei sallita tällä sivulla."
Tässä tapauksessa voit lisätä PageParserPath-elementin seuraavasti:
<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>
Jos kaikki saman virtuaalihakemiston sivut on avattava, voit käyttää PageParserPath-elementtiä seuraavasti:
<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 on estetyn sivun polku.
-
VirtualPathin on viitattava sivuun, joka on haaksittu eikä käyttäjä voi käyttää sitä, tai hakemistoon, joka sisältää tällaisen sivun.
-
VirtualPathin on viitattava sivuun, joka ei viittaa toiseen sivuun tai perustyylisivuun, jota voidaan käyttää unghosted-palvelimessa, tai hakemistoon, joka ei sisällä tällaista sivua tai perustyylisivua.
-
DirectFileDependencies ilmaisee sallittujen suorien tiedostoriippuvuuksien määrän. Jos näyttöön tulee virhesanoma, kuten "sallittujen suorien tiedostoriippuvuuksien määrä ylittää rajoituksen", muuta tätä arvoa.
Skenaarion 2 ratkaisu
Voit ratkaista ongelman lisäämällä uuden SafeControls-elementin annettua tyyppiä, nimitilaa ja vahvaa kokoonpanon nimeä varten Web.config-tiedostoon määritys-/SharePoint/SafeControls-elementin alla, kuten SafeControls-elementissä (Ratkaisu) onkuvattu. Määritä sitten Safe-määritteen arvoksi TOSI.
Lisätietoja SafeControls-elementin määritearvojen muodosta on kohdassa 12 Ohjeet: Ohjausobjektien merkitseminen turvallisten ohjausobjektien merkitseminen pakkauksen suunnittelussa -osan vaiheessa 12.
Skenaarion 3 ratkaisu
Voit ratkaista ongelman lisäämällä uuden SafeControls-elementin, joka käyttää Src-määritettä Web.config-tiedostoon määritys-/SharePoint/SafeControls-elementin alla.
Näyttöön tulee esimerkiksi seuraava virhesanoma:
"Viitattu tiedosto '/_layouts/somedirectory/affectedusercontrol.ascx' ei ole sallittu tällä sivulla."
Tässä tapauksessa voit lisätä SafeControls-elementin seuraavien esimerkkien mukaisesti:
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls> <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" /> </SafeControls>