指定是否对进度 XmlSerializer 进行额外的检查。
<configuration>
<system.xml.serialization>
Syntax
<xmlSerializer checkDeserializerAdvance = "true|false" />
特性和元素
下列各节描述了特性、子元素和父元素。
特性
| Attribute | Description |
|---|---|
| checkDeserializeAdvances | 指定是否检查进度 XmlSerializer 。 将属性设置为“true”或“false”。 默认值为“true”。 |
| useLegacySerializationGeneration | 指定是否 XmlSerializer 使用旧序列化生成生成程序集,方法是将 C# 代码写入文件,然后将其编译到程序集。 默认值为 false。 |
子元素
没有。
父元素
| 元素 | Description |
|---|---|
| <system.xml.serialization> 元素 | 包含和XmlSerializerXmlSchemaImporter类的配置设置。 |
注解
默认情况下,在反序列化不受信任的数据时, XmlSerializer 提供额外的安全层,防止潜在的拒绝服务攻击。 它通过尝试在反序列化期间检测无限循环来执行此作。 如果检测到此类条件,则会引发异常,并显示以下消息:“内部错误:反序列化无法通过基础流前进。
接收此消息不一定表示正在进行拒绝服务攻击。 在某些情况下,无限循环检测机制会生成误报,并且为合法的传入消息引发异常。 如果发现特定应用程序合法消息被此额外的保护层拒绝,请将 checkDeserializeAdvances 属性设置为“false”。
Example
下面的代码示例将 checkDeserializeAdvances 属性设置为“false”。
<configuration>
<system.xml.serialization>
<xmlSerializer checkDeserializeAdvances="false" />
</system.xml.serialization>
</configuration>