Webparts, die von WPProperty abhängen, funktionieren in SharePoint Server möglicherweise nicht mehr ordnungsgemäß (KB5003528)

Gilt für
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

Symptome

Ein Webpart, das von WPProperty abhängig ist, funktioniert möglicherweise nicht mehr ordnungsgemäß und generiert a7wm1-Ereignistags in ULS-Protokollen (SharePoint Unified Logging System).

Ursache

Dieses Problem tritt auf, weil SharePoint Server jetzt erfordert, dass Farmen die .NET-Typen deklarieren, die auf WPProperty in der web.config-Datei zugreifen dürfen. Die nicht aufgeführten .NET-Typen haben aus Sicherheitsgründen keinen Zugriff auf WPProperty .

Lösung

Installieren Sie zur Behebung des Problems eines der folgenden Updates:

Damit das Webpart wie erwartet funktioniert, führen Sie die folgenden Schritte aus, um die betroffenen .NET-Typen als zulässig für den Zugriff auf WPProperty in der web.config-Datei zu deklarieren.

Wichtig

Lassen Sie .NET-Typen nur den Zugriff auf WPProperty zu, nachdem Sie bestätigt haben, dass dies sicher ist.

  1. Öffnen Sie die Datei „web.config“ Ihrer Webanwendung auf jedem Server in Ihrer SharePoint-Farm.

  2. Suchen Sie den Abschnitt SharePoint/SafeMode.

  3. Fügen Sie einen AllowedWPProperties-Abschnitt hinzu, falls er noch nicht vorhanden ist.

  4. Fügen Sie ein neues AllowedWPProperty-Element mit type - und propertyName-Attributen hinzu, um den Typ darzustellen, der auf WPProperty zugreifen darf.

    <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. Speichern Sie die Änderungen an der Datei „web.config“.

Um die richtigen Werte für die Attribute type und propertyName zu identifizieren, fragen Sie das ULS-Protokoll nach dem Ereignistag a7wm1 ab, und notieren Sie sich den Protokolleintrag. Beispiel:
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
Damit dieser Typ auf WPProperty zugreifen kann, legen Sie das AllowedWPPProperty-Typ-Attribut auf den Blockierten AssemblyQualifiedName-Wert und das propertyName-Attribut auf den Wert für den Namen der blockierten Eigenschaft fest.

Änderungsverlauf

In der folgenden Tabelle sind einige der wichtigsten Änderungen an diesem Thema zusammengefasst.

Datum Beschreibung
14. September 2021 Im Abschnitt „Lösung“ wurden zwei Updates hinzugefügt.