我在使用活动目录设置身份验证时遇到了困难。
我在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
获得结果 - 类型查询。
答案 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