XmlReaderSettings.MaxCharactersInDocument Свойство

Определение

Возвращает или задает значение, указывающее максимальное допустимое количество символов в XML-документе.Gets or sets a value indicating the maximum allowable number of characters in an XML document. Нуль (0) означает отсутствие ограничений на размер XML-документа.A zero (0) value means no limits on the size of the XML document. Значение, не равное нулю, указывает максимальное количество символов.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

Значение свойства

Максимально допустимое количество символов в XML-документе.The maximum allowable number of characters in an XML document. Значение по умолчанию равно 0.The default is 0.

Примеры

Следующий код задает это свойство, а затем пытается проанализировать документ, размер которого превышает ограничение.The following code sets this property, and then attempts to parse a document larger than the limit. В реальной ситуации для этого ограничения следует задать значение, достаточное для работы с допустимыми документами, но достаточно маленькое, чтобы ограничить угрозу от вредоносных документов.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  

Этот код выводит следующие результаты:This code produces the following output:

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

Комментарии

Нулевое (0) значение означает отсутствие ограничений на количество символов в проанализированном документе.A zero (0) value means no limits on the number of characters in the parsed document. Ненулевое значение указывает максимальное число символов, которые могут быть проанализированы.A non-zero value specifies the maximum number of characters that can be parsed.

Максимальное число символов в документе включает число символов, полученное в результате расширенных сущностей.The maximum character count for the document includes the count of characters that result from expanded entities.

Если читатель пытается прочитать документ с размером, превышающим это свойство, будет выдано исключение XmlException.If the reader attempts to read a document with a size that exceeds this property, an XmlException will be thrown.

Это свойство позволяет устранить атаки типа «отказ в обслуживании», когда злоумышленник отправляет очень большие XML-документы.This property allows you to mitigate denial of service attacks where the attacker submits extremely large XML documents. Ограничивая размер документа, можно обнаружить атаку и обеспечить надежное восстановление.By limiting the size of a document, you can detect the attack and recover reliably.

Применяется к