我注意到有几个不同的命名空间/类用于访问Active Directory。使用以下内容有什么区别?
答案 0 :(得分:1)
AccountManagement
下的项目涉及使用各种LDAP类型数据存储。不仅仅是Active Directory,还有NDS和WinNT。如果您知道您的后备存储是LDAP兼容的,或者可能在各种LDAP存储之间切换,那么这可能是最好的。
ActiveDirectory
命名空间专门用于AD。如果您要严格遵守AD环境,通常只需要使用它。
ActiveDirectoryMembershipProvider
的焦点略有不同。这通常被Web Apps用作成员资格提供者之一。其他成员资格提供程序包括您可能创建的SqlMembershipProvider
甚至自定义成员资格。当您的后备存储可能是AD时使用此选项,但将来也可以将其更改为使用SQL Server或其他随机存储。
总之,这一切都归结为您的应用目前的功能以及未来的增长方式。如果您有桌面应用程序,请使用System.DirectoryServices
命名空间。如果您有可能部署到未知环境的Web应用程序,请使用成员资格提供程序。
请注意,我在某些应用程序中一起使用了SqlMembershipProvider和System.DirectoryServices空间的组合。特别是在授权保留在我的应用程序中时,在LDAP存储(AD / NDS)中进行身份验证。