C# 使用C对LDAP服务器上特定组的用户进行身份验证#

C# 使用C对LDAP服务器上特定组的用户进行身份验证#,c#,authentication,active-directory,ldap,nested-groups,C#,Authentication,Active Directory,Ldap,Nested Groups,我在LDAP服务器上有几个嵌套的组和这些组中的用户。 如何通过仅在组(而不是整个域)中搜索来验证具有给定用户名和密码的用户?bind会这样做吗 正如您在本问题的评论部分所确认的,您所谈论的LDAP服务器是Active Directory服务器。所以,我的答案是基于,除了我已经根据您的要求进行了修改,以限制搜索范围 如果您使用.NET 3.5或更高版本,则可以使用System.DirectoryServices.AccountManagement命名空间轻松验证您的凭据: // create a

我在LDAP服务器上有几个嵌套的组和这些组中的用户。
如何通过仅在组(而不是整个域)中搜索来验证具有给定用户名和密码的用户?bind会这样做吗

正如您在本问题的评论部分所确认的,您所谈论的LDAP服务器是Active Directory服务器。所以,我的答案是基于,除了我已经根据您的要求进行了修改,以限制搜索范围

如果您使用.NET 3.5或更高版本,则可以使用
System.DirectoryServices.AccountManagement
命名空间轻松验证您的凭据:

// create a "principal context"
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOUR.DOMAIN",
             "OU=Where,OU=You,OU=Wanna,OU=Search,DC=YOUR,DC=DOMAIN"))
   // change your container to a base OU where all your users are located.
{
    // validate the credentials
    bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}

您有什么类型的LDAP服务器?您可以通过提供绑定OU来限制搜索范围,但我不确定您使用的是什么LDAP服务。我不知道,我只列出了od域和组,例如domainName.com dc=first、dc=second、OU=third。。。用户和密码存储在ou组中,但我当然看不到它们。我只需要检查他们是否在该组中,密码是否正确。我可以用justbind方法来实现这一点吗?实际上,我要求的是LDAP服务器的类型。您能确认它是否是基于Microsoft的Windows Active Directory服务器吗?是的。我可以使用Novell.Directory.Ldap或System.DirectoryServices.Protocols LdapConnection类进行访问。