XmlReaderSettings Třída

Definice

Určuje sadu funkcí pro podporu objektu XmlReader vytvořeného metodou Create .

public ref class XmlReaderSettings sealed
public sealed class XmlReaderSettings
type XmlReaderSettings = class
Public NotInheritable Class XmlReaderSettings
Dědičnost
XmlReaderSettings

Příklady

Následující příklad vytvoří, XmlReader který používá XmlUrlResolver s potřebnými přihlašovacími údaji.

// Create an XmlUrlResolver with the credentials necessary to access the Web server.
var resolver = new XmlUrlResolver();
var myCred = new NetworkCredential(UserName, SecurelyStoredPassword, Domain);
resolver.Credentials = myCred;

var settings = new XmlReaderSettings();
settings.XmlResolver = resolver;

// Create the reader.
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);
' Create an XmlUrlResolver with the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred

Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver

' Create the reader.
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml", settings)

Poznámky

Tuto metodu Create použijete k získání instance XmlReader. Tato metoda používá XmlReaderSettings třídu k určení funkcí, které se mají implementovat v objektu XmlReader , který vytvoří.

Informace o tom, která nastavení se mají použít pro kontroly shody, ověřování a další běžné scénáře, najdete v částech XmlReader Poznámky a Create referenční stránky. Seznam výchozích nastavení najdete v XmlReaderSettings() konstruktoru.

Bezpečnostní aspekty

Při použití XmlReaderSettings třídy zvažte následující skutečnosti.

  • Příznaky ProcessInlineSchema a ProcessSchemaLocation objektu XmlReaderSettings nejsou ve výchozím nastavení nastaveny. Když jsou tyto příznaky nastaveny, XmlResolver objektu XmlReaderSettings je použit k určení umístění schémat nalezených v dokumentu instance v XmlReader. XmlResolver Pokud je objekt null, umístění schématu nejsou vyřešena, i když jsou příznaky ověřování ProcessInlineSchema a ProcessSchemaLocation nastaveny.

  • Schémata přidaná během ověřování přidávají nové typy a můžou změnit výsledek ověření ověřovaného dokumentu. V důsledku toho by externí schémata měla být vyřešena pouze z důvěryhodných zdrojů.

  • Chybové zprávy ověřování můžou zveřejnit citlivé informace o modelu obsahu. Chyby ověření a varovné zprávy se zpracovávají pomocí delegáta ValidationEventHandler, nebo jsou zveřejněny jako XmlSchemaValidationException v případě, že pro objekt XmlReaderSettings není poskytována žádná obslužná rutina události (varování při ověřování nezpůsobují vyvolání XmlSchemaValidationException). Tyto informace o modelu obsahu by neměly být zpřístupněny v nedůvěryhodných scénářích. Zprávy upozornění na ověření jsou ve výchozím nastavení potlačeny a lze je hlásit nastavením příznaku ReportValidationWarnings .

  • Vlastnost SourceUri objektu XmlSchemaValidationException vrací cestu URI k souboru schématu, který způsobil výjimku. Vlastnost SourceUri by neměla být vystavena v nedůvěryhodných scénářích.

  • Zakázání příznaku ProcessIdentityConstraints (ve výchozím nastavení povoleno) se doporučuje při ověřování nedůvěryhodných a velkých dokumentů XML ve scénářích s vysokou dostupností oproti schématu s identitními omezeními nad velkou částí dokumentu.

  • XmlReaderSettings objekty mohou obsahovat citlivé informace, jako jsou přihlašovací údaje uživatele. Při ukládání objektů do mezipaměti XmlReaderSettings nebo při předávání objektu XmlReaderSettings z jedné komponenty do jiné byste měli být opatrní.

  • Zpracování DTD je ve výchozím nastavení zakázané. Pokud povolíte zpracování DTD, musíte mít na paměti zahrnutí DTD z nedůvěryhodných zdrojů a možných útoků na dostupnost služby. Slouží ThrowingResolver k omezení prostředků, ke kterým XmlReader má přístup.

  • Nepřijímejte podpůrné komponenty, jako jsou objekty NameTable, XmlNamespaceManager a XmlResolver z nedůvěryhodného zdroje.

  • Využití paměti aplikace, která používá XmlReader , může mít korelaci s velikostí analyzovaného dokumentu XML. Jednou z forem útoku na dostupnost služby je odeslání příliš velkých dokumentů XML, které se mají analyzovat. Pomocí nastavení vlastnosti MaxCharactersInDocument můžete omezit velikost dokumentu, který lze analyzovat, a pomocí nastavení vlastnosti MaxCharactersFromEntities poté omezit počet znaků, které vzniknou rozšířením entit.

Konstruktory

Name Description
XmlReaderSettings()

Inicializuje novou instanci XmlReaderSettings třídy.

XmlReaderSettings(XmlResolver)
Zastaralé.

Inicializuje novou instanci XmlReaderSettings třídy.

Vlastnosti

Name Description
Async

Získá nebo nastaví, zda asynchronní XmlReader metody lze použít v konkrétní XmlReader instanci.

CheckCharacters

Získá nebo nastaví hodnotu označující, zda provést kontrolu znaků.

CloseInput

Získá nebo nastaví hodnotu určující, zda podkladový datový proud nebo TextReader má být uzavřen při zavření čtečky.

ConformanceLevel

Získá nebo nastaví úroveň shody, se kterou XmlReader bude dodržovat.

DtdProcessing

Získá nebo nastaví hodnotu, která určuje zpracování DTD.

IgnoreComments

Získá nebo nastaví hodnotu označující, zda se mají ignorovat komentáře.

IgnoreProcessingInstructions

Získá nebo nastaví hodnotu určující, zda má ignorovat pokyny ke zpracování.

IgnoreWhitespace

Získá nebo nastaví hodnotu označující, zda má ignorovat nevýznamné prázdné znaky.

LineNumberOffset

Získá nebo nastaví odsazení čísla řádku objektu XmlReader .

LinePositionOffset

Získá nebo nastaví posun pozice čáry objektu XmlReader .

MaxCharactersFromEntities

Získá nebo nastaví hodnotu označující maximální povolený počet znaků v dokumentu, který je výsledkem rozbalení entit.

MaxCharactersInDocument

Získá nebo nastaví hodnotu označující maximální povolený počet znaků v dokumentu XML. Nulová hodnota (0) znamená žádné omezení velikosti dokumentu XML. Nenulová hodnota určuje maximální velikost znaků.

NameTable

Získá nebo nastaví XmlNameTable použité pro porovnání atomizovaných řetězců.

ProhibitDtd
Zastaralé.
Zastaralé.

Získá nebo nastaví hodnotu určující, zda zakázat zpracování definice typu dokumentu (DTD). Tato vlastnost je zastaralá. Místo toho použijte DtdProcessing.

Schemas

Získá nebo nastaví XmlSchemaSet použití při ověřování schématu.

ValidationFlags

Získá nebo nastaví hodnotu označující nastavení ověření schématu. Toto nastavení platí pro XmlReader objekty, které ověřují schémata (ValidationType vlastnost nastavená na ValidationType.Schema).

ValidationType

Získá nebo nastaví hodnotu určující, zda XmlReader bude provádět ověření nebo přiřazení typu při čtení.

XmlResolver

XmlResolver Nastaví použitou pro přístup k externím dokumentům.

Metody

Name Description
Clone()

Vytvoří kopii XmlReaderSettings instance.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
Reset()

Obnoví členy třídy nastavení na výchozí hodnoty.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Událost

Name Description
ValidationEventHandler

Nastane, když čtenář narazí na chyby ověření.

Platí pro

Viz také