无法使用LDAP验证凭据

时间:2014-05-13 05:10:37

标签: c# .net ldap

我是LDAP新手,希望使用.Net连接到LDAP服务器以验证用户凭据。以下代码返回错误:

  

LDAP服务器不可用

但是验证在Java代码中运行良好。请告诉我哪里出错了。

using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "LDAP://192.168.65.201:389/DC=be,DC=ndl,DC=CompanyName,DC=com"))
{
    bool a= pc.ValidateCredentials("myname@CompanyName.com","password"); 
}

1 个答案:

答案 0 :(得分:3)

首先 - PrincipalContext仅适用于 Active Directory ,而不是针对任何其他LDAP服务器。

其次:您为构造函数指定了无效参数。关于PrincipalContext可用的构造函数的Check out the MSDN docs

您只能定义ContextType参数,在这种情况下,PrincipalContext是针对您所连接的当前域构建的:

var ctx = new PrincipalContext(ContextType.Domain);

或者您可以使用带有第二个字符串参数的构造函数,该参数表示您域名的域名域名 - 一个完整的LDAP路径!):

var ctx = new PrincipalContext(ContextType.Domain, "CompanyName.com");

然后,您将在根级别连接到该特定域。

或者第三,您可以指定第三个参数,该参数定义该域中要连接的容器

var ctx = new PrincipalContext(ContextType.Domain, "CompanyName.com", 
                               "CN=Users,DC=be,DC=ndl,DC=CompanyName,DC=com");

因此,您需要找到合适的构造函数并提供正确的参数才能使其正常工作 - 如果您正在使用Active Directory。

相关问题