ASP.NET Web窗体应用程序中的Active Directory

时间:2012-08-23 15:34:37

标签: asp.net windows-authentication directoryservices activedirectorymembership

我注意到有几个不同的命名空间/类用于访问Active Directory。使用以下内容有什么区别?

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

1 个答案:

答案 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)中进行身份验证。