LDAP中的扩展错误

时间:2013-03-05 06:22:44

标签: ldap openldap

以下是我在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。

1 个答案:

答案 0 :(得分:2)

您必须解析错误字符串才能提取错误编号,因为您无法从LDAP结构中看到错误代码,因为它是opaque datatype并且您只能访问LDAP structure的元素通过routines可以看到结构的不完整定义。