Interstage Application Server ディレクトリサービス運用ガイド
目次 索引 前ページ次ページ

第9章 アプリケーションの作成(C API)> 9.3 ソースプログラムの作成

9.3.4 エントリの検索

 Interstage ディレクトリサービスに対してエントリの検を要求すると、検索条件に合致したエントリの情報が通知されます。エントリを検索するには、以下の関数を使用します。

基本的な検索方法

 基本的な検索は、サーチベース(検索開始位置)、検索する範囲、および検索フィルタを指定します。これらのパラメタの組み合わせることにより検索範囲を絞り込むことができます。

 同期型検索の例を示します。


/* エントリの検索 */ rtn = ldap_search_s( ld, "ou=interstage,o=fujitsu,dc=com", LDAP_SCOPE_SUBTREE, "cn=User001", NULL, 0, &result ); if ( rtn != LDAP_SUCCESS ) { /* エラー発生時の処理をする */ return -1; }

高度な検索方法

 基本的な検索方法による検索範囲の絞り込みに加え、検索結果で通知する対象を限定したり、通知される最大件数に制限を設けたり、検索タイムアウトを設定したりできます。
 以下に検索例を説明します。

  1. 取得する属性を制限する

     検索結果として取得する属性を指定できます。

      char  *attrs[] = { "cn", "telephonenumber","mail", NULL };
      ......
      rtn = ldap_search_s( ld, "ou=interstage,o=fujitsu,dc=com", LDAP_SCOPE_SUBTREE, "cn=User001", attrs, 0, &result );

     NULLを指定すると、検索条件に合致したエントリの、利用できる属性が、すべて通知されます。

  2. DNだけを検索する

     検索結果としてDNだけを検索することができます。


    char *attrs[] = { LDAP_NO_ATTRS, NULL }; ...... rtn = ldap_search_s( ld, "ou=interstage,o=fujitsu,dc=com", LDAP_SCOPE_SUBTREE, "cn=User001", attrs, 0, &result );

     

  3. 検索結果の最大エントリ数を制限する

     検索結果の最大エントリ数を、セションハンドルオプション「LDAP_OPT_SIZELIMIT」を使って設定します。


    int sizelimit = 3; rtn = ldap_set_option( ld, LDAP_OPT_SIZELIMIT, (void *)(&sizelimit) );

     また、セションハンドルを使用しないで、以下の関数を使っても最大エントリ数を制限できます。

  4. 検索結果の最大待ち時間を制限する

     セションハンドルオプション「LDAP_OPT_TIMELIMIT」を使って、検索結果の最大待ち時間を秒単位で設定します。

      int timelimit = 5;
      rtn = ldap_set_option( ld, LDAP_OPT_TIMELIMIT, (void *)(&timelimit) );

     以下の関数を使うこともできます。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED