Веб-части, зависящие от WPProperty, могут работать неправильно в SharePoint Server (KB5003528)

Применяется к
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

Проблема

Веб-часть, которая зависит от WPProperty , может работать неправильно и создает теги событий a7wm1 в журналах единой системы ведения журнала SharePoint (ULS).

Причина

Эта проблема возникает из-за того, что SharePoint Server теперь требует, чтобы фермы объявляли типы .NET, которым разрешен доступ к WPProperty в файле web.config. Типы .NET, которые не перечислены, не будут иметь доступ к WPProperty в качестве меры безопасности.

Решение

Чтобы устранить эту проблему, установите одно из следующих обновлений:

Чтобы веб-часть работала должным образом, сделайте следующее, чтобы объявить затронутые типы .NET как разрешенные для доступа к WPProperty в файле web.config.

Важно

Разрешите типы .NET доступ к WPProperty только после подтверждения того, что это безопасно.

  1. Откройте файл web.config веб-приложения на каждом сервере фермы SharePoint.

  2. Найдите раздел configuration/SharePoint/SafeMode .

  3. Добавьте раздел AllowedWPProperties , если он еще не существует.

  4. Добавьте новый элемент AllowedWPProperty с атрибутами type и propertyName , чтобы представить тип, которому должен быть разрешен доступ к 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. Сохраните изменения в файле web.config.

Чтобы определить правильные значения атрибутов type и propertyName , запросить в журнале ULS тег события a7wm1 и запишите запись журнала. Например:
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
Чтобы разрешить этому типу доступ к WPProperty, задайте для атрибута AllowedWPPProperty type значение заблокированного AssemblyQualifiedName, а для атрибута propertyName — значение имени заблокированного свойства.

Журнал изменений

В следующей таблице перечислены некоторые наиболее важные изменения в этом разделе.

Дата Описание
14 сентября 2021 г. Добавлены два обновления в разделе "Разрешение".