0

I notice there are several different namespaces/classes for accessing Active Directory. What are the differences between using the following ?

  • System.DirectoryServices.AccountManagement
  • System.DirectoryServices.ActiveDirectory
  • System.Web.Security.ActiveDirectoryMembershipProvider
4

1 回答 1

1

下面的项目AccountManagement处理使用各种 LDAP 类型的数据存储。不仅是 Active Directory,还有 NDS 和 WinNT。如果您知道您的后备存储与 LDAP 兼容,或者可以在各种 LDAP 存储之间切换,那么这可能是最好的选择。

ActiveDirectory命名空间专门用于 AD 。通常,如果您要严格地呆在 AD 环境中,您只关心使用它。

ActiveDirectoryMembershipProvider重点略有不同。这通常被 Web 应用程序用作成员资格提供者之一。其他成员资格提供者包括SqlMembershipProvider您可能创建的甚至自定义的提供者。这在您的后备存储可能是 AD 时使用,但将来也可以更改为使用 SQL 服务器或其他一些随机存储。


总而言之,这一切都归结为您的应用程序当前的功能以及未来的发展方式。如果您有桌面应用程序,请使用System.DirectoryServices命名空间。如果您有可能部署到未知环境中的 Web 应用程序,请使用成员资格提供程序。

请注意,我在某些应用程序中同时使用了 SqlMembershipProvider 和 System.DirectoryServices 空间的组合。特别是在授权保留在我的应用程序中时,对 LDAP 存储 (AD/NDS) 进行身份验证。

于 2012-08-28T21:15:48.540 回答