Sintomas
Depois de instalar uma das seguintes atualizações, algumas páginas fantasmagóricas no Microsoft SharePoint não renderizam:
Por exemplo, as páginas do portal Do Gestor de Identidade do Microsoft (MIM) e algumas páginas personalizadas que são implementadas através da Solução SharePoint não renderizam.
Além disso, poderá experimentar um ou mais dos seguintes cenários.
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 'enablessionstate' não é permitido nesta página.
-
Os blocos de código não são permitidos neste ficheiro.
-
O manipulador de eventos 'OnSelectedIndexChanged' não é permitido nesta página.
Nota O evento na última mensagem de erro também pode ser outro evento, como "OnClick".
Cenário 2
A página fantasma bloqueada apresenta a seguinte mensagem de erro:
Controlo InseguroExcepção: Uma peça web ou controlo de formulário web nesta página não pode ser exibida ou importada. O tipo não foi encontrado ou não está registado como seguro.
Cenário 3
A página fantasma bloqueada apresenta a seguinte mensagem de erro:
O ficheiro referenciado "/_layouts/somedirectory/affectedusercontrol.ascx" não é permitido nesta página.
Causa
As páginas fantasmagóricas são armazenadas no sistema de ficheiros. O seu nível de segurança é melhorado através da proibição de scripts do lado do servidor e de controlos inseguros. Uma página fantasmagórica pode ser bloqueada de renderização se as seguintes condições forem verdadeiras:
-
A página fantasmagórica contém código in-line ou script do lado do servidor.
-
O tipo de código ou tipo de peça web não está registado como seguro.
Resolução para o Cenário 1
Para resolver este problema, adicione um novo elemento PageParserPath que tenha um atributo VirtualPath ao ficheiro Web.config no elemento configuração/SharePoint/SafeMode/PageParserPaths.
Por exemplo, recebe a seguinte mensagem de erro:
"O atributo 'autoeventwireup' não é permitido nesta página."
Neste caso, pode adicionar um elemento PageParserPath, da seguinte forma:
<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 do mesmo diretório virtual tiverem de ser desbloqueadas, pode utilizar um elemento PageParserPath, da seguinte forma:
<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 consultar uma página que é fantasmagórica e não pode ser desagravada por nenhum utilizador, ou um diretório que contenha tal página.
-
VirtualPath deve consultar uma página que não refira outra página ou página principal que possa ser desagravada, ou um diretório que não contenha tal página ou página principal.
-
DirectFileDependencies indica o número de dependências de ficheiros diretos permitidas. Se receber uma mensagem de erro como "o número de dependências de ficheiros diretos permitidas excede o limite", altere este valor.
Resolução para o Cenário 2
Para resolver este problema, adicione um novo elemento SafeControls para o tipo, espaço de nome e conjunto de nomes fortes no ficheiro Web.config sob o elemento configuração/SharePoint/SafeControls, conforme descrito no elemento SafeControls (Solução). Em seguida, desagure o atributo Safe ao TRUE.
Para obter mais informações sobre o formato dos valores de atributos no elemento SafeControls, consulte a tabela no passo 12 na secção "Marcação de Controlos Seguros no Designer de Pacotes" de Como: Marcar os controlos como controlos seguros.
Resolução para o Cenário 3
Para resolver este problema, adicione um novo elemento SafeControls que utiliza o atributo Src ao ficheiro Web.config sob o elemento configuração/SharePoint/SafeControls.
Por exemplo, recebe a seguinte mensagem de erro:
"O ficheiro referenciado '/_layouts/somedirectory/affectedusercontrol.ascx' não é permitido nesta página."
Neste caso, 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/*" IncluemSubFolders="True" Safe="True" /> </SafeControls>