Elemento <xmlSerializer>
Especifica se uma verificação adicional de progresso do XmlSerializer é feita.
<configuração>
<system.xml.serialization>
Syntax
<xmlSerializer checkDeserializerAdvance = "true|false" />
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Atributos
Atributo | Descrição |
---|---|
checkDeserializeAdvances | Especifica se o progresso do XmlSerializer é verificado. Defina o atributo como "true" ou "false". O padrão é "true". |
useLegacySerializationGeneration | Especifica se o XmlSerializer usa a geração de serialização herdada que gera assemblies escrevendo código C# em um arquivo e, em seguida, compilando-o em um assembly. O padrão é false. |
Elementos filho
Nenhum.
Elementos pai
Elemento | Descrição |
---|---|
<Elemento> system.xml.serialization | Contém definições de configuração para as classes XmlSerializer e XmlSchemaImporter. |
Comentários
Por padrão, o XmlSerializer fornece uma camada adicional de segurança contra potenciais ataques de negação de serviço ao desserializar dados não confiáveis. Ele faz isso tentando detectar loops infinitos durante a desserialização. Se uma condição desse tipo for detectada, uma exceção será gerada com a seguinte mensagem: “Erro interno: a desserialização não pôde avançar sobre o fluxo subjacente”.
Receber essa mensagem não necessariamente indica que um ataque de negação de serviço esteja em andamento. Em algumas circunstâncias raras, o mecanismo de detecção de loop infinito produz um falso positivo e a exceção é gerada para uma mensagem de entrada legítima. Se você achar que em seus aplicativos específicos mensagens legítimas estão sendo rejeitadas por essa camada extra de proteção, defina o atributo checkDeserializeAdvances como “false”.
Exemplo
O exemplo de código a seguir define o atributo checkDeserializeAdvances como “false”.
<configuration>
<system.xml.serialization>
<xmlSerializer checkDeserializeAdvances="false" />
</system.xml.serialization>
</configuration>