2

私は現在、LDAPディレクトリから読み取り、すべてのデータを特定の形式(つまり、古い独自のディレクトリdbの名前形式)で出力するツール(ANSI C)をプログラミングしています。これは、出力などを読み取る別のツールによって処理されます...尋ねないでください。

とにかく、私の「ldaplist ...」コマンドでは、値が設定されていないものも含めて、そのエントリに属する​​すべての属性を出力する必要があります。

残念ながら、 ldap_first_attribute/ldap_next_attributeはそれらを返しません。値が設定されているものだけを返します。ここで役立つldap_search_ext_sパラメーターまたはスイッチが見つかりません。ldap_set_optionあなたの一人がそれを行う方法を知っていることを願っています。

お時間をいただき、ありがとうございました。

4

2 に答える 2

2

skwllspに同意します。各エントリの各オブジェクトクラスのスキーマを返し、各属性を表示する必要があります。残念ながら、このタイプのリターンには「役に立たない」データがたくさんある可能性があるため、これはおそらく予想よりもはるかに多くなります。

設定された属性を表示してから、設定されていない目的の属性のリストを表示することをお勧めします。

http://developer.novell.com/documentation/samplecode/cldap_sample/index.htm 頑張ってください-jim

于 2009-11-06T09:01:53.383 に答える
1

使っldap_search_ext_sたことがないのでオプションがわからず、この機能を使った解決策がわかりません。しかし、私は一つのアイデアを提案したいと思います。

  1. LDAPサーバーからスキーマを取得する必要があります。スキーマエントリのDNはルートノードにあります。その後、スキーマエントリとその「objectClasses」属性を取得する必要があります。これには、各クラスの仕様とその許可された属性タイプ(スキーマ)が含まれています。

  2. LDAP検索を実行すると、通常、ゼロ、1つ以上のエントリが取得されます。各エントリにはobjectClass属性があります。オブジェクトクラスの名前であるその値を読み取ります。次に、スキーマ内の各オブジェクトクラスを検索し、その属性タイプを取得します。返されたエントリに1つまたは少数の属性がない場合は、属性に値がないか、このエントリの属性を読み取ることが許可されていないことを意味します。

于 2009-10-28T15:30:47.703 に答える