System.DirectoryServices 的代码访问安全性

代码访问安全性是限制代码对受保护的资源和操作的访问权限的一种机制。代码访问安全性使代码可以根据它所来自的位置以及代码标识的其他方面,获得不同等级的受信度。有关更多信息,请参见 Code Access Security.

调用方安全性要求

System.DirectoryServices.dll 和 System.DirectoryServices.Protocols.dll 库包含 System.DirectoryServicesSystem.DirectoryServices.ActiveDirectorySystem.DirectoryServices.Protocols 命名空间的实现。它们是安全库,要求其调用方具有不受限制的 DirectoryServicesPermission,才能访问这些库公开的类、方法和属性。

如果应用程序接收的信任度低于运行时代码访问安全系统提供的完全信任,它们将无法调用共享的托管库,该库用 AllowPartiallyTrustedCallersAttribute 标记时除外。默认情况下,在本地 Intranet 或 Internet 区域中执行的所有代码都是部分受信任的。在 .NET Framework 2.0 中,System.DirectoryServices.dll 和 System.DirectoryServices.Protocols.dll 应用了 AllowPartiallyTrustedCallersAttribute,以使代码能够在部分受信任的上下文中执行或被部分受信任的代码调用。因此,只要调用方被授予不受限制的 DirectoryServicesPermission,则即使该调用方不是完全受信任的程序集,也可以访问 System.DirectoryServices.dll 和 System.DirectoryServices.Protocols.dll。

要求的权限

链接要求导致在实时编译过期中进行安全检查,而不是在运行时进行这一检查,并且只检查代码的直接调用方。在链接要求中不执行完整的堆栈审核,这种审核是在常规要求中进行的。链接要求一般比常规要求快得多,但使用链接要求的代码仍然容易遭受引诱攻击。标记为链接要求的任何方法或类的调用方需要执行应用程序设计人员认为必需的任何安全检查。有关DemandsLink Demands的更深入比较,请参阅 Demand vs. LinkDemand

System.DirectoryServicesSystem.DirectoryServices.ActiveDirectorySystem.DirectoryServices.Protocols 命名空间的所有入口点都对不受限制的 DirectoryServicesPermission(例如,DirectoryEntryDirectorySearcherDirectoryContextLdapConnectionDsmlSoapHttpConnection 的构造函数)执行某一要求。它们基于其他必需的权限执行链接要求。有关针对这三个命名空间的类和方法提出的要求类型的详细信息,请参阅 System.DirectoryServicesSystem.DirectoryServices.ActiveDirectorySystem.DirectoryServices.Protocols 命名空间参考部分。

授予不受限制的 DirectoryServicesPermission

默认情况下,向完全信任的程序集授予不受限制的 DirectoryServicesPermission。使用诸如Code Access Security Policy Tool (Caspol.exe) Caspol.exe 之类的工具,还可以向其他程序集显式授予此权限。

另请参见

参考

System.DirectoryServices
System.DirectoryServices.ActiveDirectory
System.DirectoryServices.Protocols
DirectoryServicesPermission

概念

System.DirectoryServices 入门

其他资源

Code Access Security
Secure Coding Guidelines
Security Demands

Send comments about this topic to Microsoft.

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。