XmlReaderSettings.MaxCharactersInDocument Propriedade

Definição

Obtém ou define um valor que indica o número máximo permitido de caracteres em um documento XML.Gets or sets a value indicating the maximum allowable number of characters in an XML document. Um valor zero (0) significa que não há limite para o tamanho do documento XML.A zero (0) value means no limits on the size of the XML document. Um valor diferente de zero especifica o tamanho máximo, em caracteres.A non-zero value specifies the maximum size, in characters.

public:
 property long MaxCharactersInDocument { long get(); void set(long value); };
public long MaxCharactersInDocument { get; set; }
member this.MaxCharactersInDocument : int64 with get, set
Public Property MaxCharactersInDocument As Long

Valor da propriedade

Int64

O número máximo permitido de caracteres em um documento XML.The maximum allowable number of characters in an XML document. O padrão é 0.The default is 0.

Exemplos

O código a seguir define essa propriedade e, em seguida, tenta analisar um documento maior que o limite.The following code sets this property, and then attempts to parse a document larger than the limit. Em um cenário do mundo real, você definiria esse limite com um valor grande o suficiente para lidar com documentos válidos, embora seja pequeno o suficiente para limitar a ameaça de documentos mal-intencionados.In a real world scenario, you would set this limit to a value large enough to handle valid documents, yet small enough to limit the threat from malicious documents.

string markup = "<Root>Content</Root>";  

XmlReaderSettings settings = new XmlReaderSettings();  
settings.MaxCharactersInDocument = 10;  

try  
{  
    XmlReader reader = XmlReader.Create(new StringReader(markup), settings);  
    while (reader.Read()) { }  
}  
catch (XmlException ex)  
{  
    Console.WriteLine(ex.Message);  
}  
Dim markup As String = "<Root>Content</Root>"  

Dim settings As XmlReaderSettings = New XmlReaderSettings()  
settings.MaxCharactersInDocument = 10  

Try  
    Dim reader As XmlReader = XmlReader.Create(New StringReader(markup), settings)  
    While (reader.Read())  
    End While  
Catch ex As XmlException  
    Console.WriteLine(ex.Message)  
End Try  

Este código produz a seguinte saída:This code produces the following output:

There is an error in XML document (MaxCharactersInDocument, ).  

Comentários

Um valor zero (0) significa que não há limites no número de caracteres no documento analisado.A zero (0) value means no limits on the number of characters in the parsed document. Um valor diferente de zero Especifica o número máximo de caracteres que podem ser analisados.A non-zero value specifies the maximum number of characters that can be parsed.

A contagem máxima de caracteres para o documento inclui a contagem de caracteres que resultam de entidades expandidas.The maximum character count for the document includes the count of characters that result from expanded entities.

Se o leitor tentar ler um documento com um tamanho que exceda essa propriedade, um XmlException será gerado.If the reader attempts to read a document with a size that exceeds this property, an XmlException will be thrown.

Essa propriedade permite que você reduza ataques de negação de serviço em que o invasor envia documentos XML extremamente grandes.This property allows you to mitigate denial of service attacks where the attacker submits extremely large XML documents. Ao limitar o tamanho de um documento, você pode detectar o ataque e recuperá-lo de forma confiável.By limiting the size of a document, you can detect the attack and recover reliably.

Aplica-se a