Belirtiler
Aşağıdaki güncelleştirmelerden birini yükledikten sonra, Microsoft SharePoint'te bazı hayalet sayfalar işlemez:
-
SharePoint Server 2019 güvenlik güncelleştirmesini açıklaması: 8 Eylül 2020 (KB 4484505)
-
SharePoint Enterprise Server 2016 güvenlik güncelleştirmesini açıklaması: 8 Eylül 2020 (KB 4484506)
-
SharePoint Foundation 2013 güvenlik güncelleştirmesini açıklaması: 8 Eylül 2020 (KB 4484525)
-
SharePoint Foundation 2010 güvenlik güncelleştirmesini açıklaması: 8 Eylül 2020 (KB 4486667)
Örneğin, Microsoft Identity Manager (MIM) portal sayfaları ve SharePoint Çözümü aracılığıyla dağıtılan özelleştirilmiş bazı sayfalar iş görünmez.
Buna ek olarak, aşağıdaki senaryolardan birini veya birden fazlasını da kullanabilirsiniz.
Senaryo 1
Engellenen hayalet sayfa aşağıdaki hata iletilerinden birini görüntüler:
-
Bu sayfada 'autoeventwireup' özniteliğine izin verilmiyor.
-
Bu sayfada 'enablesessionstate' özniteliğine izin verilmiyor.
-
Bu dosyada kod bloklarına izin verilmez.
-
Bu sayfada 'OnSelectedIndexChanged' olay işleyicisine izin verilmez.
Not Son hata iletisinde yer alan olay, "OnClick" gibi başka bir olay da olabilir.
Senaryo 2
Engellenen hayalet sayfa aşağıdaki hata iletisini görüntüler:
UnsafeControlException: Bu Sayfada Bir Web Bölümü veya Web Formu Denetimi görüntülenemiyor veya aktarılamaz. Tür bulunamadı veya güvenli olarak kayıtlı değil.
Senaryo 3
Engellenen hayalet sayfa aşağıdaki hata iletisini görüntüler:
Bu sayfada başvurulan '/_layouts/somedirectory/affectedusercontrol.ascx' dosyasına izin verilmez.
Neden
Hayalet sayfalar dosya sisteminde depolanır. Güvenlik düzeyi, sunucu tarafı betikleri ve güvenli olmayan denetimler tarafından geliştirilmiştir. Aşağıdaki koşullar doğruysa, hayalet bir sayfanın işlemesi engellenmiş olabilir:
-
Hayalet sayfa satır içinde kod veya sunucu tarafı betiği içerir.
-
Arka kod türü veya web bölümü türü güvenli olarak kayıtlı değildir.
Senaryo 1 için çözüm
Bu sorunu çözmek için, configuration/SharePoint/SafeMode/PageParserPaths öğesinin altındaki Web.config dosyasına VirtualPath özniteliğine sahip yeni bir PageParserPath öğesi ekleyin.
Örneğin, aşağıdaki hata iletisini alırsınız:
"Bu sayfada 'autoeventwireup' özniteliğine izin verilmiyor."
Bu durumda, pageParserPath öğesini aşağıdaki gibi eklemeye devam edebilirsiniz:
<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>
Aynı sanal dizindeki tüm sayfaların engellemesini kaldırmanız gerekirse, pageparserPath öğesini aşağıdaki gibi kullanabilirsiniz:
<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, engellenen sayfanın yoludur.
-
VirtualPath, hayalet olan ve hiçbir kullanıcı tarafından hayalet olarak hayalet olarak kaldırılamaz bir sayfaya veya bu tür bir sayfa içeren dizine başvurur.
-
VirtualPath, başka bir sayfaya veya yeniden barındırılanın kaldırılala bir ana sayfaya başvur olmayan bir sayfaya ya da böyle bir sayfa veya ana sayfa içeren bir dizine başvur olmalıdır.
-
DirectFileDependencies, izin verilen doğrudan dosya bağımlılıklarının sayısını gösterir. "İzin verilen doğrudan dosya bağımlılıklarının sayısı sınırı aşıyor" gibi bir hata iletisi alırsanız, bu değeri değiştirebilirsiniz.
Senaryo 2 için çözüm
Bu sorunu çözmek için, SafeControls öğesinde (Çözüm)açıklandığı gibi, verilen tür, ad alanı ve derlemenin güçlü adı için yeni bir SafeControls öğesini configuration/SharePoint/SafeControls öğesinin altındaki Web.config dosyasına ekleyin. Ardından, Safe özniteliğini TRUE olarak ayarlayın.
SafeControls öğesinde öznitelik değerlerinin biçimi hakkında daha fazla bilgi için, Nasıl Olur: Denetimleri güvenli denetim olarak işaretlemenin "Paket Tasarımcısı'nda Güvenli Denetimleri İşaretleme" bölümündeki 12. adımdaki tabloya bakın.
Senaryo 3 için çözüm
Bu sorunu çözmek için, configuration/SharePoint/SafeControls öğesinin altındaki Web.config dosyasına Src özniteliğini kullanan yeni bir SafeControls öğesi ekleyin.
Örneğin, aşağıdaki hata iletisini alırsınız:
"Bu sayfada '/_layouts/somedirectory/affectedusercontrol.ascx' dosyasına izin verilmiyor."
Bu durumda, aşağıdaki örneklerde olduğu gibi SafeControls öğesini eklersiniz:
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls> <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" /> </SafeControls>