在LDAP绑定时,一个用户抛出“DirectoryOperationException:请求中的值无效”

时间:2011-09-04 00:28:51

标签: c# ldap directoryservices

我正在使用System.DirectoryServices.Protocols.LDAP对Oracle / Sun LDAP服务器进行身份验证。代码通常工作正常,但对于极少数用户,我遇到以下异常:

System.DirectoryServices.Protocols.DirectoryOperationException:请求中的值无效。   在System.DirectoryServices.Protocols.LdapConnection.BindHelper(NetworkCredential newCredential,Boolean needSetCredential)

这是我正在遵循的一般算法:

  • 建立与ldap服务器的连接。 AuthType为Basic,AutoBind已禁用,LDAP Version 3。
  • 我使用“浏览器”用户名和密码绑定(专门创建的帐户,以便我的程序可以检索有关用户的信息)。即使身份验证失败,我也需要检索他们的信息,所以我不能立即以用户身份绑定。
  • 检索有关用户的信息。
  • 调用connection.Bind(new NetworkCredential(USERDN,USERPASS))以使用用户的凭证重新绑定。这适用于99%以上的用户群。我通常会查找DirectoryException,并显示“提供的凭据无效”消息。告知凭证是否正确。但是,对于少数用户,我得到“请求中的值无效”异常。

每次尝试进行身份验证时,都会对少数帐户抛出此异常,因此服务器似乎不是一次性问题。

0 个答案:

没有答案