Interstage Application Server ディレクトリサービス運用ガイド |
目次
索引
![]() ![]() |
第9章 アプリケーションの作成(C API) | > 9.3 ソースプログラムの作成 |
Interstage ディレクトリサービスに対してエントリの検索を要求すると、検索条件に合致したエントリの情報が通知されます。エントリを検索するには、以下の関数を使用します。
基本的な検索は、サーチベース(検索開始位置)、検索する範囲、および検索フィルタを指定します。これらのパラメタの組み合わせることにより検索範囲を絞り込むことができます。
サーチベースとなるエントリのDNを指定します。省略できません。
検索する範囲として、以下のどれか1つを指定します。
検索条件の式を"cn=User001"のように指定します。NULLを指定すると、検索対象のエントリの中で、利用できるエントリが、すべて通知されます。
同期型検索の例を示します。
|
基本的な検索方法による検索範囲の絞り込みに加え、検索結果で通知する対象を限定したり、通知される最大件数に制限を設けたり、検索タイムアウトを設定したりできます。
以下に検索例を説明します。
検索結果として取得する属性を指定できます。
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を指定すると、検索条件に合致したエントリの、利用できる属性が、すべて通知されます。
検索結果としてDNだけを検索することができます。
|
検索結果の最大エントリ数を、セションハンドルオプション「LDAP_OPT_SIZELIMIT」を使って設定します。
|
また、セションハンドルを使用しないで、以下の関数を使っても最大エントリ数を制限できます。
int sizelimit = 3; rtn = ldap_search_ext_s( ld, "ou=interstage,o=fujitsu,dc=com", LDAP_SCOPE_SUBTREE, "cn=User001", NULL, 0, NULL, NULL, NULL, sizelimit, &result ); |
セションハンドルオプション「LDAP_OPT_TIMELIMIT」を使って、検索結果の最大待ち時間を秒単位で設定します。
int timelimit = 5; rtn = ldap_set_option( ld, LDAP_OPT_TIMELIMIT, (void *)(&timelimit) ); |
以下の関数を使うこともできます。
timeout.tv_sec = 5L; /* 秒単位 */ timeout.tv_usec = 0L; /* マイクロ秒単位 */ rtn = ldap_search_st( ld, "ou=interstage,o=fujitsu,dc=com", LDAP_SCOPE_SUBTREE, "cn=User001", NULL, 0, &timeout, &result ); |
また、ldap_search_ext()、ldap_search_ext_s()でも同様に最大待ち時間を指定することができます。
目次
索引
![]() ![]() |