Web Parts que dependem de WPProperty podem deixar de funcionar corretamente no Servidor do SharePoint (KB5003528)

Aplica-se a
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

Sintomas

Uma Web Part que depende de WPProperty pode não funcionar corretamente e gerar marcas de evento a7wm1 em logs ULS (Sistema de Log Unificado) do SharePoint.

Causa

Esse problema ocorre porque agora o Servidor do SharePoint requer que os farms declarem os tipos .NET que têm permissão para acessar WPProperty no arquivo web.config. Os tipos .NET que não estiverem listados não terão acesso a WPProperty como precaução de segurança.

Resolução

Para resolver este problema, instale uma das seguintes atualizações:

Para que a Web Part funcione conforme esperado, execute as etapas a seguir para declarar os tipos .NET afetados como tendo permissão para acessar WPProperty no arquivo web.config.

Importante

Só permita que tipos .NET acessem o WPProperty depois de confirmar que é seguro fazer isso.

  1. Abra o arquivo web.config de seu aplicativo Web em cada servidor no farm do SharePoint.

  2. Encontre a seção configuration/SharePoint/SafeMode.

  3. Adicione uma seção AllowedWPProperties se ela ainda não existir.

  4. Adicione um novo elemento AllowedWPProperty com atributos type e propertyName para representar o tipo que deve ter permissão para acessar 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. Salve as alterações no arquivo web.config.

Para identificar os valores corretos para os atributos type e propertyName , consulte o log ULS para a tag de evento a7wm1 e anote a entrada do log. Por exemplo:
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
Para permitir que esse tipo acesse WPProperty, defina o atributo do tipo AllowedWPPProperty como o valor do AssemblyQualifiedName bloqueado e defina o atributo propertyName como o valor do nome da propriedade bloqueada.

Histórico de alterações

A tabela a seguir resume algumas das alterações mais importantes neste tópico.

Data Descrição
14 de setembro de 2021 Foram adicionadas duas atualizações na seção "Resolução".