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:
- Hinweise zum Sicherheitsupdate für SharePoint Server 2019: 14. September 2021 (KB5002018)
- Hinweise zum Sicherheitsupdate für SharePoint Enterprise Server 2016: 08. Juni 2021 (KB5001946)
- Hinweise zum Sicherheitsupdate für SharePoint Foundation 2013: 14. September 2021 (KB5002024)
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.
Öffnen Sie die Datei „web.config“ Ihrer Webanwendung auf jedem Server in Ihrer SharePoint-Farm.
Suchen Sie den Abschnitt SharePoint/SafeMode.
Fügen Sie einen AllowedWPProperties-Abschnitt hinzu, falls er noch nicht vorhanden ist.
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>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. |