属性値の比較を行うことにより、属性値の読込みを行わずに値を判定することができます。属性値を比較する場合、以下の関数を使用します。
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;
}