XmlReaderSettings.MaxCharactersInDocument Proprietà

Definizione

Ottiene o imposta un valore che indica il numero massimo di caratteri consentito in un documento XML.Gets or sets a value indicating the maximum allowable number of characters in an XML document. Un valore zero (0) indica che non è previsto alcun limite alla dimensione del documento XML.A zero (0) value means no limits on the size of the XML document. Un valore diverso da zero specifica la dimensione massima in caratteri.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

Valore della proprietà

Numero massimo di caratteri consentito in un documento XML.The maximum allowable number of characters in an XML document. Il valore predefinito è 0.The default is 0.

Esempi

Il codice seguente imposta questa proprietà, quindi tenta di analizzare un documento di dimensioni maggiori del limite.The following code sets this property, and then attempts to parse a document larger than the limit. In uno scenario reale, è possibile impostare questo limite su un valore sufficientemente grande da poter gestire documenti validi, ma sufficientemente piccolo da limitare la minaccia da documenti dannosi.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  

L'output del codice è il seguente:This code produces the following output:

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

Commenti

Il valore zero (0) indica nessun limite al numero di caratteri nel documento analizzato.A zero (0) value means no limits on the number of characters in the parsed document. Un valore diverso da zero specifica il numero massimo di caratteri che possono essere analizzati.A non-zero value specifies the maximum number of characters that can be parsed.

Il numero massimo di caratteri per il documento include il numero di caratteri risultante dalle entità espanse.The maximum character count for the document includes the count of characters that result from expanded entities.

Se il lettore tenta di leggere un documento con una dimensione che supera questa proprietà, verrà generata un'XmlException.If the reader attempts to read a document with a size that exceeds this property, an XmlException will be thrown.

Questa proprietà consente di attenuare gli attacchi Denial of Service in cui l'autore dell'attacco invia documenti XML di dimensioni estremamente grandi.This property allows you to mitigate denial of service attacks where the attacker submits extremely large XML documents. Limitando le dimensioni di un documento, è possibile rilevare l'attacco e ripristinarlo in modo affidabile.By limiting the size of a document, you can detect the attack and recover reliably.

Si applica a