Übersicht über die Sicherheitserweiterungen für System.XML

Seit der Freigabe von .NET Framework, Version 1.0, wurden mehrere Änderungen vorgenommen, die in dieses Release von .NET Framework, Version 1.1, aufgenommen wurden. In diesem Thema wird kurz erläutert, welche Klassen von den Änderungen betroffen sind. Außerdem sind Verknüpfungen mit Themen aufgeführt, unter denen Sie ausführlichere Informationen erhalten.

XmlReader und abgeleitete Klassen, XmlTextReader und XmlValidatingReader

Vererbungsforderungen erfolgen nun auf der Klassenebene von XmlTextReader und XmlValidatingReader. Sie müssen als vollständig vertrauenswürdig eingestuft sein, um diese Klassen vererben zu können. Weitere Informationen über Vererbungsforderungen erhalten Sie unter Vererbungsforderungen und Sicherheitsforderungen. Weitere Informationen über die an XmlReader und den abgeleiteten Klassen vorgenommenen Änderungen finden Sie unter Lesen von XML mit dem "XmlReader".

XmlDocument

Das Verhalten der Load-Methode in XmlDocument wurde geändert. Es hängt nun davon ab, ob die Klasse vollständig oder teilweise vertrauenswürdig ist. Weitere Informationen über die Auswirkungen auf die Load-Methode finden Sie unter Auflösen von externen Ressourcen. Zudem erfolgen Vererbungsforderungen auf der Methodenebene nun für die ReadNode-Methode und CreateDocumentType-Methode von XmlDocument. Weitere Informationen über Vererbungsforderungen erhalten Sie unter Vererbungsforderungen und Sicherheitsforderungen.

XslTransform

Die XslTransform-Klasse weist nun einige Verhaltensunterschiede auf. In der folgenden Liste sind die Unterschiede im Verhalten aufgeführt:

  • Die XslTransform-Klasse kann von teilweise vertrauenswürdigem Code verwendet werden.

  • Die XslTransform.Load-Methode enthält in .NET Framework, Version 1.1, einen neuen Evidence-Parameter. Weitere Informationen hierzu finden Sie unter Implementierung der XslTransform-Klasse durch den XSLT-Prozessor.

  • Die XslTransform.XmlResolver-Eigenschaft ist in .NET Framework, Version 1.1, veraltet. Verwenden Sie stattdessen die new XslTransform.Transform-Überladungen, die durch nahezu identische Methoden ersetzt werden. Es wurde lediglich das XmlResover-Argument hinzugefügt. Weitere Informationen hierzu finden Sie unter Implementierung der XslTransform-Klasse durch den XSLT-Prozessor.

  • Die Behandlung von Stylesheets, die auf externe Ressourcen verweisen oder Skripts ausführen, wurde geändert. Die XslTransform-Klasse unterstützt das Erstellen von eingebettenen Skripts mit Hilfe des msxsl:script-Elements. In .NET Framework, Version 1.1, bestimmen die Beweise des Stylesheets die Berechtigungen, die eingebetteten Skripts erteilt werden.

    • Wenn das Stylesheet aus einem URI geladen wurde, wird der URI zum Erstellen der Beweise verwendet. In diesen Beweisen ist der URI mit der zugehörigen Site und Zone enthalten.
    • Wenn das Stylesheet aus einer anderen Quelle geladen wurde, können Sie Beweise bereitstellen, indem Sie ein System.Security.Policy.Evidence-Objekt an die Load-Methode übergeben. Andernfalls wird die Skript-Assembly als vollständig vertrauenswürdig behandelt.

    Wenn teilweise vertrauenswürdige Aufrufer das eingebettete Skript kompilieren möchten, müssen sie über die UnmanagedCode-Berechtigung verfügen. Zum Bereitstellen von Evidence für die Load-Methode ist die ControlEvidence-Berechtigung erforderlich. Wenn der Aufrufer nicht über die notwendigen Berechtigungen verfügt, wird eine "SecurityException" ausgelöst. Weitere Informationen hierzu finden Sie unter "System.Security.Permissions.SecurityPermission" und "System.Security.Permissions.SecurityPermissionFlag".

    Weitere Informationen finden Sie unter Auflösen von externen XSLT-Stylesheets und -Dokumenten

XmlResolver

Die Vererbungsforderung bei Einstufung als vollständig vertrauenswürdig erfolgt nun durch die ResolveUri-Methode in der XmlResolver-Klasse. Weitere Informationen über Vererbungsforderungen erhalten Sie unter Vererbungsforderungen und Sicherheitsforderungen.

.NET Framework, Version 1.1, wurde die neue abgeleitete Klasse XmlSecureResolver hinzugefügt. Diese Klasse ermöglicht es vollständig vertrauenswürdigen Anwendungen, beim Zugriff auf Daten und externe Ressourcen Beweise bereitzustellen. Weitere Informationen hierzu finden Sie unter Auflösen externer, durch einen URI benannter XML-Ressourcen.

Siehe auch

Übersicht über die XML-Architektur in .NET Framework | XML-Dokumentobjektmodell (DOM) | Lesen von XML mit dem "XmlReader" | Schreiben von XML mit dem "XmlWriter" | XSLT-Transformationen mit der XslTransform-Klasse | Der XPathNavigator in .NET Framework | XML-Schemaobjektmodell (SOM) | Gültigkeitsprüfung von XML mit Schemas | XML-Integration mit relationalen Daten und ADO.NET | Auflösen externer, durch einen URI benannter XML-Ressourcen | Zeichencodierung von XML-Namen und Konvertierung von XML-Datentypen | Konvertierung von XML-Datentypen | Namespaces in einem XML-Dokument