Codezugriffssicherheit für System.DirectoryServices
Mithilfe der Codezugriffssicherheit wird der Zugriff von Code auf geschützte Ressourcen und Operationen beschränkt. Mithilfe der Codezugriffssicherheit können für Code aufgrund des Ursprungs und weiterer Identitätsaspekte verschiedene Vertrauensebenen festgelegt werden. Weitere Informationen finden Sie unter Code Access Security.
Sicherheitsanforderungen für Aufrufer
Die Bibliotheken System.DirectoryServices.dll und System.DirectoryServices.Protocols.dll enthalten die Implementierungen der Namespaces System.DirectoryServices, System.DirectoryServices.ActiveDirectory und System.DirectoryServices.Protocols. Dabei handelt es sich um sichere Bibliotheken, die fordern, dass DirectoryServicesPermission für den Aufrufer nicht eingeschränkt ist, um auf die von den Bibliotheken bereitgestellten Klassen, Methoden und Eigenschaften zugreifen zu können.
Anwendungen, die vom Zugriffssicherheitssystem für Laufzeitcode eine geringere Vertrauensebene als vollständige Vertrauenswürdigkeit erhalten, können keine gemeinsam genutzten, verwalteten Bibliotheken aufrufen, sofern die Bibliothek nicht mit AllowPartiallyTrustedCallersAttribute markiert ist. In der Standardeinstellung gilt Code, der aus der lokalen Intranet- oder Internetzone ausgeführt wird, als teilweise vertrauenswürdig. In .NET Framework 2.0 sind System.DirectoryServices.dll und System.DirectoryServices.Protocols.dll mit AllowPartiallyTrustedCallersAttribute markiert, damit Code aus einem teilweise vertrauenswürdigen Kontext ausgeführt oder von einem teilweise vertrauenswürdigen Code aufgerufen werden kann. Der Aufrufer muss daher keine voll vertrauenswürdige Assembly sein, um auf System.DirectoryServices.dll und System.DirectoryServices.Protocols.dll zugreifen zu können, wenn DirectoryServicesPermission für den Aufrufer nicht eingeschränkt ist.
Fordern von Berechtigungen
Ein Verknüpfungsaufruf bewirkt eine Sicherheitsüberprüfung während der Just-In-Time-Kompilierung und nicht zur Laufzeit, wobei nur der direkte Aufrufer des Codes überprüft wird. Im Gegensatz zu einem normalen Aufruf wird bei einem Verknüpfungsaufruf kein vollständiger Stackwalk durchgeführt. Verknüpfungsaufrufe sind im Durchschnitt wesentlich schneller als normale Aufrufe. Der Code, der den Verknüpfungsaufruf verwendet, ist jedoch weiterhin für Lockangriffe anfällig. Der Aufrufer einer Methode oder Klasse, die als Verknüpfungsaufruf markiert ist, muss die Sicherheitsprüfungen ausführen, die der Anwendungsentwickler als notwendig erachtet. Einen ausführlichen Vergleich von Demands und Link Demands finden Sie unter Demand vs. LinkDemand.
Alle Einstiegspunkte der Namespaces System.DirectoryServices, System.DirectoryServices.ActiveDirectory und System.DirectoryServices.Protocols führen einen Aufruf mit uneingeschränkter DirectoryServicesPermission aus (z. B. Konstruktoren von DirectoryEntry, DirectorySearcher, DirectoryContext, LdapConnection und DsmlSoapHttpConnection). Sie führen einen Verknüpfungsaufruf für andere erforderliche Berechtigungen aus. Ausführliche Informationen zu den Aufrufen für Klassen und Methoden der drei Namespaces finden Sie in den Referenzabschnitten der Namespaces System.DirectoryServices, System.DirectoryServices.ActiveDirectory und System.DirectoryServices.Protocols.
Gewähren von uneingeschränkter Verzeichnisdienstberechtigung
Einer voll vertrauenswürdigen Assembly wird standardmäßig DirectoryServicesPermission ohne Einschränkung gewährt. Diese Berechtigung kann mit Tools wie Code Access Security Policy Tool (Caspol.exe), Caspol.exe, auch anderen Assemblys explizit gewährt werden.
Siehe auch
Referenz
System.DirectoryServices
System.DirectoryServices.ActiveDirectory
System.DirectoryServices.Protocols
DirectoryServicesPermission
Konzepte
Erste Schritte in System.DirectoryServices
Weitere Ressourcen
Code Access Security
Secure Coding Guidelines
Security Demands
Send comments about this topic to Microsoft.
Copyright © 2007 Microsoft Corporation. Alle Rechte vorbehalten.