Sintomas
Uma Peça Web que depende de WPProperty pode deixar de funcionar corretamente e gera etiquetas de eventos a7wm1 em registos uls (Unified Logging System) do SharePoint.
Causa
Este problema ocorre porque o SharePoint Server requer agora que os farms declarem os tipos de .NET que têm permissão para aceder a WPProperty no ficheiro web.config. Os tipos de .NET que não estão 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 para 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 Peça Web funcione conforme esperado, siga os seguintes passos para declarar os tipos de .NET afetados como autorizados a aceder a WPProperty no ficheiro web.config.
Importante
Só permita que os tipos de .NET acedam a WPProperty depois de confirmar que é seguro fazê-lo.
Abra o ficheiro web.config da sua aplicação Web em cada servidor no farm do SharePoint.
Localize a secção configuração/SharePoint/SafeMode .
Adicione uma secção AllowedWPProperties se ainda não existir.
Adicione um novo elemento AllowedWPProperty com atributos type e propertyName para representar o tipo que deve ter permissão para aceder a 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>Guarde a alteração no ficheiro web.config.
Para identificar os valores corretos para os atributos type e propertyName , consulte o registo ULS da etiqueta de evento a7wm1 e anote a entrada de registo. 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 este tipo aceda a WPProperty, defina o atributo AllowedWPPProperty type como o valor assemblyQualifiedName bloqueado e defina o atributo propertyName para o valor de nome de propriedade bloqueado.
Histórico de alterações
A tabela seguinte resume algumas das alterações mais importantes a este tópico.
| Data | Descrição |
|---|---|
| 14 de setembro de 2021 | Foram adicionadas duas atualizações na secção "Resolução". |