Symptômes
Après avoir installé l’une des mises à jour suivantes, certaines pages fantômes dans Microsoft SharePoint ne sont pas générées :
- Description de la mise à jour de sécurité de SharePoint Server 2019 du 8 septembre 2020 (KB 4484505)
- Mise à jour du 21 septembre 2020 de SharePoint Server 2019 (KB4461512)
- Description de la mise à jour de sécurité de SharePoint Enterprise Server 2016 du 8 septembre 2020 (KB 4484506)
- Description de la mise à jour de sécurité de SharePoint Foundation 2013 du 8 septembre 2020 (KB 4484525)
- Description de la mise à jour de sécurité de SharePoint Foundation 2010 du 8 septembre 2020 (KB 4486667)
Par exemple, les pages du portail Microsoft Identity Manager (MIM) et certaines pages personnalisées qui sont déployées via la solution SharePoint ne sont pas générées.
En outre, il se peut que vous rencontriez les scénarios suivants.
Scénario 1
La page fantôme bloquée affiche l’un des messages d’erreur suivants :
Remarque
L’attribut 'autoeventwireup' n’est pas autorisé sur cette page.
L’attribut 'enablesessionstate' n’est pas autorisé sur cette page.
Les blocs de code ne sont pas autorisés dans ce fichier.
Le gestionnaire d’événements « OnSelectedIndexChanged » n’est pas autorisé dans cette page.
Note L’événement dans le dernier message d’erreur peut également être un autre événement, tel que « OnClick ».
Scénario 2
La page fantôme bloquée peut afficher le message d’erreur suivant :
Remarque
UnsafeControlException : un composant WebPart ou un contrôle de formulaire web sur cette page ne peut pas être affiché ou importé. Le type est introuvable ou n’est pas inscrit comme étant sécurisé.
Scénario 3
La page fantôme bloquée peut afficher le message d’erreur suivant :
Remarque
Le fichier référencé '/_layouts/somedirectory/affectedusercontrol.ascx' n’est pas autorisé sur cette page.
Cause
Les pages fantômes sont stockées dans le système de fichiers. Leur niveau de sécurité est amélioré en interdisant les scripts côté serveur et les contrôles non sécurisés. Le rendu d’une page fantôme peut être bloqué si les conditions suivantes sont remplies :
- La page fantôme contient un code en ligne ou un script côté serveur.
- Le type code-behind ou WebPart n’est pas enregistré comme étant sécurisé.
Résolution du scénario 1
Pour résoudre ce problème, ajoutez un nouvel élément PageParserPath qui a un attribut VirtualPath au fichier Web.config sous l’élément configuration/SharePoint/SafeMode/PageParserPaths .
Par exemple, le message d’erreur suivant s’affiche :
« L’attribut 'autoeventwireup' n’est pas autorisé sur cette page. »
Dans ce cas, vous pouvez ajouter un élément PageParserPath, comme suit :
<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>
Si toutes les pages du même répertoire virtuel doivent être débloquées, vous pouvez utiliser un élément PageParserPath , comme suit :
<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>
Remarque
- VirtualPath est le chemin d’accès de la page bloquée.
- VirtualPath doit faire référence à une page qui est fantôme et qui ne peut pas être déshébergée par un utilisateur, ou à un répertoire qui contient une telle page.
- VirtualPath doit faire référence à une page qui ne fait pas référence à une autre page ou à une page master qui peut être déshébergée, ou à un répertoire qui ne contient pas une telle page ou master page.
- DirectFileDependencies indique le nombre de dépendances de fichiers directes autorisées. Si vous recevez un message d’erreur tel que « le nombre de dépendances de fichiers directes autorisées dépasse la limite », modifiez cette valeur.
Résolution du scénario 2
Pour résoudre ce problème, ajoutez un nouvel élément SafeControls pour le type, l’espace de noms et le nom fort de l’assembly donnés au fichier Web.config sous l’élément configuration/SharePoint/SafeControls , comme décrit dans Élément SafeControls (Solution) . Ensuite, définissez l’attribut Safe sur TRUE.
Pour plus d’informations sur le format des valeurs d’attribut dans l’élément SafeControls, consultez le tableau de l’étape 12 dans la section « Marquage de contrôles sécurisés dans le concepteur de packages » de la page Comment marquer les contrôles en tant que contrôles sécurisés.
Résolution du scénario 3
Pour résoudre ce problème, ajoutez un nouvel élément SafeControls qui utilise l’attribut Src au fichier Web.config sous l’élément configuration/SharePoint/SafeControls .
Par exemple, le message d’erreur suivant s’affiche :
« Le fichier référencé '/_layouts/somedirectory/affectedusercontrol.ascx' n’est pas autorisé sur cette page. »
Dans ce cas, vous pouvez ajouter l’élément SafeControls , comme dans les exemples suivants :
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls><SafeControl Src="~/_layouts/somedirectory/* » IncludeSubFolders="True » Safe="True » /></SafeControls>