2

以下は、C での私のコードの行です。

ldap_bind_s(ld, root_dn, root_pw, auth_method) != LDAP_SUCCESS  

ldap_perror( ld, "ldap_bind" );//to print the EXACT error like 525,52e

実行時

Project  ./a.out CN=username,OU=ABC,DC=example,DC=com wrong-pasword
     ldap_bind: Invalid credentials (49)
   additional info: 80090308: LdapErr: DSID-0C090334, comment:  
AcceptSecurityContext      error, data 52e, vece

ここで、データの後の文字列 52e は拡張エラーを表します。この拡張エラーに直接アクセスする方法を誰か提案してください。現在、文字列を解析してこの値を抽出しています。通常、LDAP_OPT_ERROR_NUMBER を印刷すると、49(INVALID_CREDENTIALS) だけが返されますが、それでは十分ではありません。拡張エラーのコード (コードのみ) を取得するにはどうすればよいですか。
ld->ld_errno を印刷しようとしましたが、ld にメモリが割り当てられていないため、印刷できません。

4

1 に答える 1

2

エラー番号を抽出するには、エラー文字列を解析する必要があります。LDAP 構造からエラー コードを確認できないためです。構造の不完全な定義を確認できるopaque datatype要素にLDAP structureのみアクセスできるためです。routines

于 2013-03-05T08:46:39.793 に答える