【问题标题】:Retrieve empty attributes of LDAP DN检索 LDAP DN 的空属性
【发布时间】:2010-12-10 21:08:21
【问题描述】:

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

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

不幸的是,ldap_first_attribute / ldap_next_attribute 不返回它们,只返回那些设置了值的值,我找不到可以在这里帮助我的 ldap_search_ext_s 参数或 ldap_set_option 开关。 希望你们当中有人知道如何做到这一点。

提前感谢您的时间和帮助!

【问题讨论】:

    标签: c ldap openldap


    【解决方案1】:

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

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

    您可能会通过查看以下内容获得一些帮助: http://developer.novell.com/documentation/samplecode/cldap_sample/index.htm 祝你好运 -吉姆

    【讨论】:

      【解决方案2】:

      我没有使用过ldap_search_ext_s,所以我不知道它的选项,也不能告诉你基于使用这个函数的解决方案。但是,我想提出一个想法。

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

      2. 当您运行 LDAP 搜索时,您通常会得到零个、一个或多个条目。每个条目都有一个 objectClass 属性。读取它的值,它们是对象类的名称。然后在模式中找到每个对象类并检索其属性类型。如果在返回的条目中没有一个或几个属性,则意味着该属性没有任何值,或者您不允许读取该条目中的属性。

      【讨论】:

      • +1,感谢您的建议!似乎是解决这个问题的唯一方法。我目前正在尝试弄清楚如何读出架构文件。如果我设法做到了,你会得到一个“问题已解决”,除非有人有另一个更简单的建议 g
      • 根据 LDAP,您可以简单地使用 LDAP 搜索操作来读取模式。您只需要对子模式子条目进行搜索请求。它在 RFC for LDAP 中有描述。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多