Składniki Web Part zależne od WPProperty mogą nie działać poprawnie w programie SharePoint Server (KB5003528)

Dotyczy
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

Objawy

Składnik Web Part zależny od WPProperty może już nie działać poprawnie i generować tagi zdarzeń a7wm1 w dziennikach systemu zunifikowanego rejestrowania programu SharePoint (ULS).

Przyczyna

Ten problem występuje, ponieważ program SharePoint Server wymaga teraz od farm zadeklarowania typów platformy .NET, które są dozwolone do uzyskiwania dostępu do WPProperty w pliku web.config. Typy .NET, które nie są wymienione, nie będą miały dostępu do WPProperty jako środka ostrożności.

Rozwiązanie

Aby rozwiązać ten problem, zainstaluj jedną z następujących aktualizacji:

Aby składnik Web Part działał zgodnie z oczekiwaniami, wykonaj następujące kroki w celu zadeklarowania typów platformy .NET, których dotyczy problem, jako uprawnionych do uzyskiwania dostępu do WPProperty w pliku web.config.

Ważne

Zezwalaj typom .NET na dostęp do WPProperty tylko po potwierdzeniu, że jest to bezpieczne.

  1. Otwórz plik web.config aplikacji sieci Web na każdym serwerze w farmie programu SharePoint.

  2. Znajdź sekcję konfiguracji/SharePoint/Tryb awaryjny .

  3. Dodaj sekcję AllowedWPProperties , jeśli jeszcze nie istnieje.

  4. Dodaj nowy element AllowedWPProperty z atrybutami type i propertyName reprezentujący typ, który powinien mieć możliwość uzyskiwania dostępu do 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. Zapisz zmiany w pliku web.config.

Aby zidentyfikować prawidłowe wartości atrybutów type i propertyName , należy przeszukać dziennik systemu ULS pod kątem tagu zdarzenia a7wm1 i zanotować wpis dziennika. Na przykład:
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
Aby zezwolić temu typowi na dostęp do WPProperty, ustaw atrybut AllowedWPPProperty type na zablokowaną wartość AssemblyQualifiedName i ustaw atrybut propertyName na wartość nazwy zablokowanej właściwości.

Historia zmian

W poniższej tabeli podsumowano niektóre z najważniejszych zmian w tym temacie.

Data Opis
14 września 2021 r. Dodano dwie aktualizacje w sekcji "Rozwiązanie".