我正在尝试使用以下代码对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”中记录相同的异常。
高度赞赏任何解决问题或调试正在发生的事情的指示。
答案 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”格式。