属性値の比較を行うことにより、属性値の読込みを行わずに値を判定することができます。属性値を比較する場合、以下の関数を使用します。
ldap_compare( LDAP *ld, const char *dn, const char *attr, const char *value )
非同期型の属性値比較をします。
ldap_compare_s( LDAP *ld, const char *dn, const char *attr, const char *value )
同期型の属性値比較をします。
属性値を比較する場合、クライアントは、以下のパラメタを指定します。
エントリのDN
比較対象となるエントリのDNを指定します。
比較する属性の名前
比較対象となる属性の名前を指定します。
比較する値
比較する値を指定します。文字列データを指定することができます。
Interstage ディレクトリサービスは、指定されたエントリの属性値が、クライアントが指定した値と一致しているかどうかを通知します。
「mail」が「user001@sample.fujitsu.com」であるかを比較する例です。
attr = "mail"; value = "user001@sample.fujitsu.com"; rtn = ldap_compare_s( ld, dn, attr, value ); switch ( rtn ) { case LDAP_COMPARE_TRUE: printf( "Matched.\n" ); break; case LDAP_COMPARE_FALSE: printf( "Not matched.\n" ); break; default: /* エラー発生時の処理をする */ return -1; }