Sintomas
Depois que você instala uma das seguintes atualizações, algumas páginas fantasmas no Microsoft SharePoint não são renderizadas:
-
Descrição da atualização de segurança do SharePoint Server 2019: 8 de setembro de 2020 (KB 4484505)
-
21 de setembro de 2020, atualização para o SharePoint Server 2019 (KB4461512)
Por exemplo, as páginas do portal do MIM (Microsoft Identity Manager) e algumas páginas personalizadas que são implantadas por meio da Solução do SharePoint não são renderizadas.
Além disso, um ou mais dos cenários a seguir podem ocorrer.
Cenário 1
A página fantasma bloqueada exibe uma das seguintes mensagens de erro:
-
O atributo "autoeventwireup" não é permitido nesta página.
-
O atributo "enablesessionstate" não é permitido nesta página.
-
Blocos de código não são permitidos neste arquivo.
-
O manipulador de eventos "OnSelectedIndexChanged" não é permitido nesta página.
Observação O evento na última mensagem de erro também pode ser outro evento, como "OnClick".
Cenário 2
A página fantasma bloqueada exibe a seguinte mensagem de erro:
UnsafeControlException: um Controle de Web Part ou Web Form nesta Página não pode ser exibido ou importado. O tipo não pôde ser encontrado ou não está registrado como seguro.
Cenário 3
A página fantasma bloqueada exibe a seguinte mensagem de erro:
O arquivo referenciado '/_layouts/somedirectory/affectedusercontrol.ascx' não é permitido nesta página.
Causa
As páginas fantasmas são armazenadas no sistema de arquivos. Seu nível de segurança é aprimorado proibindo scripts do lado do servidor e controles não seguros. A renderização de uma página fantasma poderá ser bloqueada se as seguintes condições forem verdadeiras:
-
A página fantasma contiver código embutido ou script do lado do servidor.
-
O tipo code-behind ou o tipo web part não é registrado como seguro.
Resolução para o Cenário 1
Para resolver esse problema, adicione um novo elemento PageParserPath que tenha um atributo VirtualPath ao arquivo Web.config sob o elemento configuration/SharePoint/SafeMode/PageParserPaths.
Por exemplo, você recebe a seguinte mensagem de erro:
"O atributo 'autoeventwireup' não é permitido nesta página."
Nesse caso, você pode adicionar um elemento PageParserPath, da seguinte maneira:
<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 todas as páginas no mesmo diretório virtual tiverem que ser desbloqueadas, você poderá usar um elemento PageParserPath, da seguinte maneira:
<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 é o caminho da página bloqueada.
-
VirtualPath deve se referir a uma página fantasma e não pode ser desconvertido de fantasma por nenhum usuário ou a um diretório que contenha tal página.
-
VirtualPath deve se referir a uma página que não faça referência a outra página ou a uma página mestra que possa ser desconvertida de fantasma, ou a um diretório que não contenha tal página ou página mestra.
-
DirectFileDependencies indica o número de dependências de arquivo direto permitidas. Se você receber uma mensagem de erro como "o número de dependências de arquivo direto permitido excede o limite", altere esse valor.
Resolução do Cenário 2
Para resolver esse problema, adicione um novo elemento SafeControls ao tipo determinado, ao namespace e ao nome forte de assembly ao arquivo Web.config no elemento configuration/SharePoint/SafeControls, como descrito em elemento SafeControls (Solução). Em seguida, configure o atributo Safe como TRUE.
Para obter mais informações sobre o formato dos valores dos atributos no elemento SafeControls, consulte a tabela na etapa 12 da seção "Marcação dos Controles Seguros no Designer de Pacotes" de Instruções: marcar controles como controles seguros.
Resolução do Cenário 3
Para resolver esse problema, adicione um novo elemento SafeControls que use o atributo Src para o arquivo Web.config sob o elemento configuration/SharePoint/SafeControls.
Por exemplo, você recebe a seguinte mensagem de erro:
"O arquivo referenciado '/_layouts/somedirectory/affectedusercontrol.ascx' não é permitido nesta página."
Nesse caso, você pode adicionar o elemento SafeControls, como nos seguintes exemplos:
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls> <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" /> </SafeControls>