PrincipalContext ValidateCredentials抛出错误

时间:2015-08-11 05:23:52

标签: c# active-directory ldap directoryservices account-management

我正在尝试使用以下代码对LDAP进行身份验证。

using (PrincipalContext context = new PrincipalContext(ContextType.Domain, ldap, "username", "password"))
{
    bool success = context.ValidateCredentials(useralias, password);
}

当我使用ldap作为“LDAP://z.y.org:389 /我在PrincipalContext初始化时收到错误说”无法联系服务器“。

如果我使用ldap作为“zyorg:389 /”它会成功执行这些步骤,如果我使用正确的凭据,则成功是“true”,但我可以在“IntelliTrace”中看到两个例外,说“LDAP服务器不可用”执行ValidateCredentails。如果我为此方法提供了错误的凭据,如果得到false,但仍然会在“IntelliTrace”中记录相同的异常。

高度赞赏任何解决问题或调试正在发生的事情的指示。

1 个答案:

答案 0 :(得分:0)

如果要进行身份验证,可以使用PrincipalContext使用以下步骤:

using(var context = new PrincipalContext(ContextType.Domain, "mydomain", "mydomain\serviceAcct", "serviceAcctPass")) 
{
     //Username and password for authentication.
     return context.ValidateCredentials(username, password);      
}

serviceAcct” =域用户中具有目录查找权限的帐户。 “ serviceAcctPass ”=该服务帐户的密码。正如我所说,对于测试,您可以尝试使用自己的用户/传递上下文。

另外,请确保提供的用户名具有“domain \ username”或“username @ domain”格式。