XmlReaderSettings.MaxCharactersInDocument XmlReaderSettings.MaxCharactersInDocument XmlReaderSettings.MaxCharactersInDocument XmlReaderSettings.MaxCharactersInDocument Property

Definición

Obtiene o establece un valor que indica el número máximo de caracteres permitido en un documento XML.Gets or sets a value indicating the maximum allowable number of characters in an XML document. Un valor cero (0) significa que no existe ningún límite en el tamaño del documento XML.A zero (0) value means no limits on the size of the XML document. Un valor distinto de cero especifica el tamaño máximo, en 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 de propiedad

El número máximo de caracteres permitido en un documento XML.The maximum allowable number of characters in an XML document. El valor predeterminado es 0.The default is 0.

Ejemplos

El código siguiente establece esta propiedad y, a continuación, intenta analizar un documento mayor que el límite.The following code sets this property, and then attempts to parse a document larger than the limit. En un escenario real, establecería este límite en un valor lo suficientemente grande como para controlar documentos válidos, pero lo suficientemente pequeños como para limitar la amenaza de documentos malintencionados.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 genera el siguiente resultado:This code produces the following output:

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

Comentarios

Un valor de cero (0) significa que no hay límites en el número de caracteres del documento analizado.A zero (0) value means no limits on the number of characters in the parsed document. Un valor distinto de cero especifica el número máximo de caracteres que se pueden analizar.A non-zero value specifies the maximum number of characters that can be parsed.

El recuento máximo de caracteres del documento incluye el recuento de caracteres resultante de las entidades expandidas.The maximum character count for the document includes the count of characters that result from expanded entities.

Si el lector intenta leer un documento con un tamaño que supera esta propiedad, se producirá una XmlException excepción.If the reader attempts to read a document with a size that exceeds this property, an XmlException will be thrown.

Esta propiedad permite mitigar los ataques de denegación de servicio en los que el atacante envía documentos XML extremadamente grandes.This property allows you to mitigate denial of service attacks where the attacker submits extremely large XML documents. Al limitar el tamaño de un documento, puede detectar el ataque y recuperarse de forma confiable.By limiting the size of a document, you can detect the attack and recover reliably.

Se aplica a