Verwenden von verwalteten Wrapperklassen

Die meisten Anwendungen und Komponenten (mit Ausnahme von sicheren Bibliotheken) dürfen nicht verwalteten Code nicht direkt aufrufen. Dafür gibt es eine Reihe von Gründen. Wenn Code nicht verwalteten Code direkt aufruft, ist seine Ausführung unter vielen Umständen nicht zulässig, da Code zum Aufrufen von systemeigenem Code eine hohe Vertrauensebene zugewiesen sein muss. Wenn die Richtlinie dahin gehend geändert wird, dass die Ausführung einer solchen Anwendung zulässig ist, kann dies die Sicherheit des Systems erheblich beeinträchtigen, da die Anwendung nahezu jede Operation ausführen kann.

Außerdem kann Code mit der Berechtigung für den Zugriff auf nicht verwalteten Code beinahe jede Operation ausführen, indem ein Aufruf an einer nicht verwalteten API vorgenommen wird. Code mit der Berechtigung für den Aufruf von nicht verwaltetem Code benötigt z. B. für den Zugriff auf eine Datei nicht FileIOPermission. Er kann stattdessen einfach eine nicht verwaltete (Win32-)Datei-API direkt aufrufen und die verwaltete Datei-API umgehen, für die FileIOPermission erforderlich ist. Wenn verwalteter Code über die Berechtigung zum Aufruf von nicht verwaltetem Code verfügt und nicht verwalteten Code direkt aufruft, ist das Sicherheitssystem nicht in der Lage, zuverlässige Sicherheitsbeschränkungen zu erzwingen, da die Laufzeit solche Beschränkungen für nicht verwalteten Code nicht erzwingen kann.

Wenn die Anwendung eine Operation ausführen soll, für die der Zugriff auf nicht verwalteten Code erforderlich ist, sollte dies über eine vertrauenswürdige verwaltete Klasse erfolgen, die die benötigten Funktionen umfasst (sofern eine solche Klasse vorhanden ist). Erstellen Sie keine eigene Wrapperklasse, wenn eine solche bereits in einer sicheren Klassenbibliothek vorhanden ist. Die Wrapperklasse, der eine hohe Vertrauenswürdigkeit zugewiesen werden muss, damit sie den nicht verwalteten Code aufrufen kann, fordert vom Aufrufer, dass dieser über die entsprechenden Berechtigungen verfügt. Wenn Sie die Wrapperklasse verwenden, muss der Code lediglich die von der Wrapperklasse geforderten Berechtigungen anfordern und erhalten.

Siehe auch

Referenz

FileIOPermission Class

Konzepte

Verwenden von sicheren Klassenbibliotheken

Weitere Ressourcen

Codezugriffssicherheit