.NET Active Directory PrincipalContext设置

时间:2015-04-01 18:31:02

标签: .net active-directory ldap

我在使用活动目录设置身份验证时遇到了困难。

我在ldap://server-1有一个LDAP服务器,域名为"DC=company,DC=com"

关注this answer,我尝试设置方案,如:

using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "ldap://server-1", "DC=company,DC=com"))
{
    // validate the credentials
    bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}

但我一直收到错误The server could not be contacted / The LDAP server is unavailable。我已经尝试了很多使用服务器名称和域的变体,但我对LDAP协议知之甚少,所以不知道我是否正确设置。

知道 LDAP可用,因为我从cmd行dsquery DC=company,DC=com获得结果 - 类型查询。

1 个答案:

答案 0 :(得分:2)

我会尝试这一点 - 使用服务器名称和dc=字符串作为服务器名称 - 并保留"起点" out(以及:确保在LDAP://前缀上使用 ALL UPPERCASE - 至关重要 !):

using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "LDAP://server-1/dc=company,dc=com"))
{
    // validate the credentials
    bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}

这有用吗?

更新:阅读我自己对您再次链接的问题的回答,您需要提供:域名(只是一个字符串;可以是{{1向第二个参数指示"默认"域,并且可选地将容器DN 指示给第三个参数 - 所以试试这个:

NULL