我正在使用 PHP 连接到 Oracle OID LDAP - 我正在使用不同的帐户类型进行测试;在这种情况下,我知道一个帐户已过期(OID 错误 9000 - http://docs.oracle.com/cd/E15523_01/oid.1111/e10029/trblsht.htm#CHDJHCHC)但 PHP 只是返回错误 49( ldap_errno) 这只是通用的无效凭据错误。
是否有其他功能或方法可以从服务器获取更详细的消息?
IIRC,诸如此类的 OID 错误代码不会通过网络传输(尽管 wireshark 会告诉你)。但是,通常存在扩展错误的概念。
您应该能够使用 PHP 中的 ldap_get_option 函数,使用 LDAP_OPT_ERROR_NUMBER 和 LDAP_OPT_ERROR_STRING 选项来获取扩展代码(和字符串)。
以上应该足以为您提供“扩展”诊断;但请记住,这可能是特定于目录实现的。
我在http://www.php.net/manual/en/function.ldap-get-option.php上看到有一个类似的(尽管对于 AD)示例,它使用(显然未记录的)LDAP_OPT_DIAGNOSTIC_MESSAGE。