Проблемы
После установки одного из следующих обновлений некоторые запунктные страницы в Microsoft SharePoint не будут отрисовки:
-
для SharePoint Enterprise Server 2016: 8 сентября 2020 г. (KB 4484506)
-
для SharePoint Foundation 2013: 8 сентября 2020 г. (KB 4484525)
-
для SharePoint Foundation 2010: 8 сентября 2020 г. (KB 4486667)
Например, не будут отрисовки страницы портала Диспетчера удостоверений (MIM) и некоторые настроенные страницы, развертываемые с помощью решения SharePoint.
Кроме того, может возникнуть один или несколько из следующих сценариев.
Сценарий 1
На заблокированной странице отображается одно из следующих сообщений об ошибке:
-
На этой странице запрещено использовать атрибут autoeventwireup.
-
Атрибут enablesessionstate не разрешен на этой странице.
-
В этом файле нельзя использовать блоки кода.
-
Обработник события OnSelectedIndexChanged не разрешен на этой странице.
Примечание Событием в последнем сообщении об ошибке также может быть другое событие, например OnClick.
Сценарий 2
На заблокированной странице отображается следующее сообщение об ошибке:
НебезопасныйControlException: веб-часть или веб-форма управления на этой странице не могут отображаться или импортироваться. Не удалось найти этот тип или он не зарегистрирован как безопасный.
Сценарий 3
На заблокированной странице отображается следующее сообщение об ошибке:
Файл, на который имеется ссылка, '/_layouts/somedirectory/affectedusercontrol.ascx' не разрешен на этой странице.
Причина
В файловой системе хранятся затейные страницы. Уровень безопасности повышается за счет ненадежных серверных сценариев и небезопасных средств контроля. Неаграммированная страница может быть заблокирована для отображения, если истинны следующие условия:
-
Призрачная страница содержит код в строке или сценарий на стороне сервера.
-
Тип веб-части или тип веб-части с программным кодом не зарегистрирован как безопасный.
Решение для сценария 1
Чтобы устранить эту проблему, добавьте в файл конфигурации/SharePoint/SafeMode/PageParserPaths новый элемент PageParserPath с атрибутом Virtual Web.config Path.
Например, вы получаете следующее сообщение об ошибке:
"На этой странице запрещено использовать атрибут autoeventwireup".
В этом случае можно добавить элемент PageParserPath следующим образом:
<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>
Если все страницы в одном виртуальном каталоге нужно разблокировать, можно использовать элемент PageParserPath следующим образом:
<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 — это путь к заблокированной странице.
-
VirtualPath должен ссылаться на страницу, которая является призрачной и не может быть unghosted ни пользователем, ни каталогом, который содержит такую страницу.
-
VirtualPath должен ссылаться на страницу, которая не ссылается на другую страницу, эталонную страницу, которую можно отослать, или на каталог, который не содержит такую страницу или эталонную страницу.
-
DirectFileDependencies указывает количество разрешенных прямых зависимостей файлов. Если вы получаете сообщение об ошибке, например "Количество разрешенных прямых зависимостей файлов превышает предел", измените это значение.
Решение для сценария 2
Чтобы устранить эту проблему, добавьте новый элемент SafeControls для данного типа, пространства имен и надежного имени сборки в файл Web.config, который находится под элементом configuration/SharePoint/SafeControls, как описано в элементе SafeControls (Solution). Затем за установите для атрибута Safe параметр TRUE.
Дополнительные сведения о формате значений атрибутов в элементе SafeControls можно найти в таблице в шаге 12 раздела "Пометка безопасных элементов управления в конструкторе пакетов" статьи "Пометкаэлементов управления как надежных элементов управления".
Решение для сценария 3
Чтобы устранить эту проблему, добавьте новый элемент SafeControls, использующий атрибут Src к файлу Web.config конфигурации/SharePoint/SafeControls.
Например, вы получаете следующее сообщение об ошибке:
"Файл, на который имеется ссылка, '/_layouts/somedirectory/affectedusercontrol.ascx' не разрешен на этой странице".
В этом случае можно добавить элемент SafeControls, как в следующих примерах:
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls> <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" /> </SafeControls>