0

如果我有一个 PrincipalContext 连接到 ActiveDirectory 服务器(带有一些凭据),那么我可以调用它的ValidateCredentials方法来验证其他一些凭据(例如,与 PrincapContext 连接所使用的凭据不同的一些其他用户名/密码对)。

我想做基本相同的事情,但使用LdapConnection。我有一个 LdapConnection 成功连接并绑定到一个 openLDAP 服务器。现在我想验证一组不同的凭据。我希望这些凭据需要是专有名称和密码对,而不是上面的用户名和密码对;没关系。

我想我可以创建一个临时的第二个 LdapConnection 并通过与第二组凭据绑定来验证。

有一个更好的方法吗?特别是,有没有办法使用我现有的 LdapConnection 来验证/验证其他凭据?顺便说一句,我为此使用 C# 4.0。

4

1 回答 1

0

应用程序代码可以通过更改现有连接的身份验证状态来验证凭据(仅限 LDAPv3)。这个过程是通过发送一个bind 请求并检查来自服务器的响应来完成的。如果来自服务器的绑定响应中的结果代码是0,则凭证是正确的并且帐户(由专有名称标识)是可用的。如果绑定响应中的结果代码非零,则发生错误:可能凭据无效、可分辨名称不存在、与可分辨名称关联的帐户已禁用或其他错误。

这可以通过现有连接完成,或者应用程序可以建立新连接并在新连接上传输绑定请求。

于 2012-04-05T09:52:18.203 回答