C# 使用C对LDAP服务器上特定组的用户进行身份验证#
我在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
如何通过仅在组(而不是整个域)中搜索来验证具有给定用户名和密码的用户?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类进行访问。