XslCompiledTransform-Klasse
Assembly: System.Xml (in system.xml.dll)
Die XslCompiledTransform-Klasse ist ein XSLT-Prozessor, der die XSLT 1.0 Syntax unterstützt. Dies ist eine neue Implementierung, die im Vergleich zur veralteten XslTransform-Klasse die Leistung verbessert. Die Struktur der XslCompiledTransform-Klasse ist der XslTransform-Klasse sehr ähnlich. Die Load-Methode lädt und kompiliert das Stylesheet, während die Transform-Methode die XSLT-Transformation ausführt.
Die Unterstützung für die XSLT-document()-Funktion und für eingebettete Skriptblöcke ist standardmäßig deaktiviert. Sie aktivieren diese Features, indem Sie ein XsltSettings-Objekt erstellen und dieses an die Load-Methode übergeben.
Weitere Informationen finden Sie unter Verwenden der XslCompiledTransform-Klasse und Migrieren von der XslTransform-Klasse.
Sicherheitsüberlegungen
Bei der Erstellung einer Anwendung, die die XslCompiledTransform-Klasse verwendet, sollten Ihnen die folgenden Elemente und deren Bedeutung bekannt sein:
-
XSLT-Skripts sind standardmäßig deaktiviert. XSLT-Skripts sollten nur aktiviert werden, wenn die Skriptunterstützung erforderlich ist und die Umgebung vollständig vertrauenswürdig ist.
-
Die XSLT-document()-Funktion ist standardmäßig deaktiviert. Wenn Sie die document()-Funktion aktivieren, schränken Sie die Ressourcen ein, auf die durch Übergeben eines XmlSecureResolver-Objekts an die Transform-Methode zugegriffen werden kann.
-
Erweiterungsobjekte sind standardmäßig aktiviert. Wenn ein XsltArgumentList-Objekt, das Erweiterungsobjekte enthält, an die Transform-Methode übergeben wird, werden diese verwendet.
-
XSLT-Stylesheets können Verweise auf andere Dateien und eingebettete Skriptblöcke enthalten. Böswillige Benutzer können dies ausnutzen und Ihnen Daten oder Stylesheets zukommen lassen, die bei der Ausführung im System eine Verarbeitungslast bis zur Erschöpfung der Ressourcen erzeugen.
-
XSLT-Anwendungen, die in einer Umgebung mit unterschiedlichen Vertrauensebenen ausgeführt werden, können zu Stylesheetspoofing führen. So kann z. B. ein böswilliger Benutzer ein Objekt mit einem schädlichen Stylesheet laden und an einen anderen Benutzer übergeben, der anschließend die Transform-Methode aufruft und die Transformation ausführt.
Sie umgehen solche Sicherheitsprobleme, indem Sie Skripts oder die document()-Funktion deaktivieren, sofern das Stylesheet nicht von einer vertrauenswürdigen Quelle stammt, und indem Sie XslCompiledTransform-Objekte, XSLT-Stylesheets und XML-Quelldaten aus nicht vertrauendwürdigen Quellen nicht akzeptieren.
Das XslCompiledTransform-Objekt ist nach dem Ladevorgang threadsicher. Das bedeutet, dass die Transform-Methode nach erfolgreichem Abschluss der Load-Methode von mehreren Threads gleichzeitig aufgerufen werden kann.
Wenn die Load-Methode erneut in einem Thread aufgerufen wird, während die Transform-Methode in einem anderen Thread aufgerufen wird, schließt das XslCompiledTransform-Objekt die Ausführung des Transform-Aufrufs unter Weiterverwendung des alten Zustands ab. Der neue Zustand wird nach erfolgreichem Abschluss der Load-Methode verwendet.
Hinweis |
|---|
| Wenn die Load-Methode von mehreren Threads gleichzeitig aufgerufen wird, ist sie nicht threadsicher. |
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Hinweis