C 检索LDAP DN的空属性

C 检索LDAP DN的空属性,c,ldap,openldap,C,Ldap,Openldap,我目前正在为我的公司编写一个工具(ANSI C),该工具从LDAP目录中读取数据,并以特定格式(即:旧专有目录db的名称格式)输出所有数据。 然后由另一个读取输出的工具处理,等等。。。不要问 无论如何,对于我的“ldaplist…”命令,我需要打印出属于该条目的所有属性,即使是那些没有设置值的属性 不幸的是,ldap\u first\u attribute/ldap\u next\u attribute没有返回它们,只返回那些有值集的属性,我找不到ldap\u search\u ext\u s参

我目前正在为我的公司编写一个工具(ANSI C),该工具从LDAP目录中读取数据,并以特定格式(即:旧专有目录db的名称格式)输出所有数据。 然后由另一个读取输出的工具处理,等等。。。不要问

无论如何,对于我的“ldaplist…”命令,我需要打印出属于该条目的所有属性,即使是那些没有设置值的属性

不幸的是,
ldap\u first\u attribute
/
ldap\u next\u attribute
没有返回它们,只返回那些有值集的属性,我找不到
ldap\u search\u ext\u s
参数或
ldap\u set\u选项
开关来帮助我。 希望你们中有人知道怎么做


提前感谢您的时间和帮助

我没有使用
ldap\u search\u ext\u s
,因此我不知道它的选项,也无法告诉您基于使用此功能的解决方案。不过,我想提出一个想法

  • 您需要从LDAP服务器检索架构。架构项的DN位于根节点中。之后,您必须检索模式条目及其“objectClasses”属性。它包含每个类及其允许的属性类型(模式)的规范

  • 运行LDAP搜索时,通常会得到零个、一个或多个条目。每个条目都有一个objectClass属性。读取其值,这些值是对象类的名称。然后在模式中查找每个对象类并检索其属性类型。如果返回的条目中没有一个或几个属性,则表示某个属性没有任何值,或者不允许您读取此条目中的属性

  • 我同意skwllsp。 您需要在每个条目上返回每个objectclass的模式,并显示每个属性。不幸的是,这可能比你预期的要多得多,因为这类回报中可能有很多“无用”的数据

    您最好先显示已填充的属性,然后显示未填充的所需属性的列表

    您可以通过查看以下内容获得一些帮助: 祝你好运
    -吉姆,谢谢你的建议!看来这是唯一的办法。我目前正试图找出如何读取模式文件。如果我成功地做到了,您将得到一个“问题解决”,除非有人有另一个更简单的建议。根据LDAP,您只需使用LDAP搜索操作即可读取模式。您只需要对子模式子条目发出搜索请求。RFC for LDAP中对其进行了描述。