gpt4 book ai didi

c - ldap_search_ext 返回额外结果

转载 作者:行者123 更新时间:2023-11-30 17:50:24 24 4
gpt4 key购买 nike

我有一些 C 代码,可以根据用户 cn 查询 openldap 服务器的用户 DN,如下所示。当我使用 Apache DS 搜索 ldap 服务器时,仅显示结果。然而我的 C 代码返回 2 条记录;第一个记录包含预期的用户 DN,第二个记录包含空白 DN!这第二条记录有什么用呢?这是预期的行为吗?

为了清楚起见,我添加了下面的代码示例,并删除了所有错误检查。

ldap_search_ext(ld, (char *)baseDN, LDAP_SCOPE_SUBTREE, "(&(objectClass=person)(cn=test00002))", NULL, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &msgid);
ldap_result(ld, msgid, 1, NULL, &res);
numUsersFound = ldap_count_messages(ld, res);
syslog(LOG_DEBUG, "DEBUG Number of users found: (%d)", numUsersFound);

结果

DEBUG Number of users found: 2
DEBUG User DN: (cn=test00002,ou=defaultRealm,dc=company,dc=com)
DEBUG User DN: ()

最佳答案

做了一些更多的故障排除,我发现有两种方法:

> int ldap_count_entries( LDAP *ld, LDAPMessage *result );  => returns 1
> int ldap_count_messages( LDAP *ld, LDAPMessage *result ); => returns 2

现在,我不完全确定“条目”和“消息”之间有什么区别,但至少它部分地解决了这个谜团。

关于c - ldap_search_ext 返回额外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17308223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com