ldap_search函数使用c ++ Win32 api返回errorcode 10?

时间:2012-11-16 14:07:37

标签: c++ windows winapi active-directory ldap

我正在使用ldap函数来使用win32 api获取用户属性值。

用户名为arun

在ldap_functions中,如init,set_options,connect,bind is success.but ldap search function返回错误代码10。

这里是我的代码

errorCode = ldap_search_s(
                    pLdapConnection,    // Session handle
                    pMyDN,              // DN to start search
                    LDAP_SCOPE_SUBTREE, // Scope  LDAP_SCOPE_BASE LDAP_SCOPE_SUBTREE
                    pMyFilter,          // Filter
                    NULL,               // Retrieve list of attributes
                    0,                  // Get both attributes and values
                    &pSearchResult);

pMyDN指定的“DC = SANJU,DC = CO,DC = IN”......

返回代码10给出的错误是LDAP_REFERRAL。但我无法得到它。

但我将pMyDN值加入"OU=Marketing,DC=SANJU,DC=CO,DC=IN"

现在,搜索功能成功了,那么问题是什么?

我需要这个功能而不使用OU, 有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

LDAP_REFERRAL:如果给定的基本DN是当前服务器未处理的条目,并且引用URL标识了处理该条目的其他服务器,则由Directory Server发送。

答案 1 :(得分:1)

DNS和AD是否在不受信任规则的不同URL(IP)中,会出现此问题。

答案 2 :(得分:0)

LDAP响应不使用error codes,它们使用result codes - 因为非零响应不一定是错误。 10就是一个例子,它是一个推荐。引用将包含有关可以处理请求的服务器的信息。如果没有目录代理服务器来跟踪引用,则LDAP客户端必须遵循引用本身。

比较操作响应也使用结果代码来传输比较结果。