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:
- Descrição da atualização de segurança do SharePoint Server 2019: 14 de setembro de 2021 (KB5002018)
- Descrição da atualização de segurança do SharePoint Enterprise Server 2016: 8 de junho de 2021 (KB5001946)
- Descrição da atualização de segurança do SharePoint Foundation 2013: 14 de setembro de 2021 (KB5002024)
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.
Abra o arquivo web.config de seu aplicativo Web em cada servidor no farm do SharePoint.
Encontre a seção configuration/SharePoint/SafeMode.
Adicione uma seção AllowedWPProperties se ela ainda não existir.
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>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". |