Les composants WebPart qui dépendent de WPProperty peuvent ne plus fonctionner correctement dans SharePoint Server (KB5003528)

S’applique à
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

Symptômes

Un composant WebPart qui dépend de WPProperty peut ne plus fonctionner correctement et générer des balises d’événement a7wm1 dans les journaux du système de journalisation unifiée (ULS) SharePoint.

Cause

Ce problème se produit parce que SharePoint Server exige désormais que les batteries de serveurs déclarent les types .NET autorisés à accéder à WPProperty dans le fichier web.config. Les types .NET qui ne sont pas répertoriés n’ont pas accès à WPProperty par mesure de sécurité.

Résolution

Pour résoudre ce problème, installez l’une des mises à jour suivantes :

Pour que le composant WebPart fonctionne comme prévu, effectuez les étapes suivantes pour déclarer le ou les types .NET affectés comme autorisés à accéder à WPProperty dans le fichier web.config.

Important

Autorisez uniquement les types .NET à accéder à WPProperty une fois que vous avez confirmé qu’il est sûr de le faire.

  1. Ouvrez le fichier web.config de votre application web sur chaque serveur de la batterie SharePoint.

  2. Recherchez la section configuration/SharePoint/SafeMode.

  3. Ajoutez une section AllowedWPProperties si elle n’existe pas déjà.

  4. Ajoutez un nouvel élément AllowedWPProperty avec les attributs type et propertyName pour représenter le type qui doit être autorisé à accéder à WPProperty.

    <SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
        <AllowedWPProperties>
            <AllowedWPProperty type="<allowedWPPropertyTypeName>,<allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" propertyName="<Allow WPProperty property name>"/>
        </AllowedWPProperties>
    </SafeMode>

  5. Enregistrez la modification apportée au fichier web.config.

Pour identifier les valeurs correctes pour les attributs type et propertyName , interrogez le journal ULS pour obtenir la balise d’événement a7wm1 et notez l’entrée du journal. Par exemple :
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
Pour permettre à ce type d’accéder à WPProperty, définissez l’attribut de type AllowedWPPProperty sur la valeur de AssemblyQualifiedName bloquée et définissez l’attribut propertyName sur la valeur de nom de propriété bloquée.

Historique des modifications

Le tableau suivant récapitule certaines des modifications les plus importantes apportées à cette rubrique.

Date Description
14 septembre 2021 Ajout de deux mises à jour à la section « Résolution ».