Symptômes
Après avoir installé l’une des mises à jour suivantes, certaines pages SharePoint ne s’affichent pas et génèrent des messages d’erreur tels que les suivants :
Remarque
Erreur du composant WebPart : 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é.
- Description de la mise à jour de sécurité pour SharePoint Enterprise Server 2013 : 8 septembre 2020 (KB4484515)
- Description de la mise à jour de sécurité pour SharePoint Foundation 2013 : 8 septembre 2020 (KB4484488)
- Description de la mise à jour de sécurité pour SharePoint Foundation 2010 : 8 septembre 2020 (KB4486667)
Cause
Une liste verte de contrôles ASP.NET est appliquée dans SharePoint 2010 et SharePoint 2013 après l’installation des mises à jour. Si les composants WebPart ou les contrôles des pages SharePoint ne sont pas ajoutés à la liste verte, les pages ne s’affichent pas.
Résolution
Si les pages ne s’affichent plus parce qu’elles utilisent un contrôle qui ne figure pas dans la liste SafeControls , procédez comme suit :
Passez en revue les journaux du service de journalisation unifiée (ULS) SharePoint pour rechercher la balise 9s9ay ou un message qui contient « Blocage du contrôle avec propriété » qui indique qu’un contrôle est bloqué.
Identifiez le type, l’espace de noms et le nom fort de l’assembly à partir du message d’erreur.
- Exemple 1
Étant donné le message d’erreur suivant :
« Le type Contoso.Customizations.WebPartControl, Contoso.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f8f8f11d50a3a est introuvable ou n’est pas inscrit comme étant sécurisé. »
Type = « WebPartControl »Namespace = « Contoso.Customizations »
Assembly strong name = « Contoso.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f8f11d50a3a »
- Exemple 2
Étant donné le message d’erreur suivant :
« Blocage du contrôle avec un balisage de traversée de propriété. [tagName : SharePoint :WebPartControl][propName : propName1][type : typeName1] »
Type = « WebPartControl » (et non « typeName1 »)Vous pouvez trouver les espaces de noms et les données d’assembly dans Microsoft Docs en interrogeant le nom du type.
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’élément SafeControls (Solution), puis définissez l’attribut Safe sur TRUE.
Pour plus d’informations sur le format des valeurs d’attribut dans l’élément SafeControls, reportez-vous au tableau de l’étape 12 dans Marquage des contrôles fiables dans le package Designer.
Solution de contournement
Si vous avez de nombreux contrôles non sécurisés, vous pouvez contourner ce problème en procédant comme suit :
- Modifiez l’élément SafeMode dans le fichier Web.config sous l’élément configuration/SharePoint .
- Ajoutez un attribut ControlCompatMode qui a la valeur True.
Attention
Nous ne recommandons pas cette solution de contournement, car elle permet d’exécuter des contrôles ASP.net non sécurisés.