我正在尝试使用以下代码连接AD
VMADProfile _VMADProfile = new VMADProfile();
DirectoryEntry searchRoot = new DirectoryEntry("Test AD LDAP Path", "DomainName\\username", "password");
directorySearcher.Filter = "(&(objectCategory=user)(samAccountName=" + username + "))";
directorySearcher.PropertiesToLoad.Add("displayname");
SearchResult one = directorySearcher.FindOne();
但是它给了我以下错误
The user name or password is incorrect.
8009030C: LdapErr: DSID-0C090579, comment: AcceptSecurityContext error, data 52e, v3839
如果我直接登录,我可以使用相同的用户名和密码登录。 我尝试连接的广告与我正在运行的代码不同。如果我将测试广告更改为生产广告,则相同的代码可以正常工作
答案 0 :(得分:1)
我认为这是关键:
我要连接的广告与运行代码的广告不同。
它可能正在尝试在您的域上对您进行身份验证,而不是另一个。确保您的LDAP路径包括用于其他域的服务器,而不仅仅是域的专有名称。服务器名称可以只是域的DNS名称。它应该看起来像这样:
"LDAP://DC=otherdomain,DC=com"
如果仅使用{{1}},它将尝试连接到当前计算机首先加入的域。如果两个域之间存在信任关系,那实际上是可行的,但是如果没有,则需要为它专门指定要连接的服务器名称。