症状
在为 SharePoint Server 应用 2024 年 9 月安全更新后,某些从 IDictionary 继承的类型被阻止反序列化。 出现此问题时,SharePoint 统一日志记录系统 (ULS) 日志中将记录以下错误消息和“4nsby”或“4nss4” 事件标记:
检测到不受支持的 IDictionary 类型。 类型: <Type>、程序集: <Assembly>
原因
出现此问题的原因是类型不在反序列化允许列表中。
解决方法
如果问题出现在 w3wp.exe 进程中,服务器场管理员可以通过将阻止的类型添加到 Web.config 文件中的受信任列表来解决此问题,但前提是你确定这些类型是安全的。
为此,请添加名为 allowedIDictionaryType 的新 AllowedItem 元素,并指定类型或程序集属性。 应在 Web.config 文件的 configuration/SharePoint/SafeMode/AllowedListItems 节下添加此元素。 以下是一个示例:
<SafeMode
MaxControls = "200"
CallStack = "false"
DirectFileDependencies ="10"
TotalFileDependencies = "250"
AllowPageLevelTrace = "false"
ControlCompatMode="false"
>
<PageParserPaths>
</PageParserPaths>
<AllowedListItems>
<AllowedItem Name="AllowedIDictionaryType" Type="Microsoft.SharePoint.Portal.WebControls.RSSAggregatorWebPart, Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx"/>
<AllowedItem Name="AllowedIDictionaryType" Assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx"/>
</AllowedListItems>
</SafeMode>