UNIFACE LDAP用户身份验证

UNIFACE LDAP用户身份验证,ldap,using,Ldap,Using,早上好 我们在uniface中使用LDAP允许用户登录到我们的系统。当用户名/密码正确时,一切正常。但当使用无效密码时,我们得到的只是错误代码49。 是否可能获得更有意义的错误消息。类似于:用户名/密码不正确 密码已过期 或 用户名已被禁用 我的代码是: ;----------------------------------------------------------------------- ; Initialise an ldap session (using PRIMARY DOMAI

早上好

我们在uniface中使用LDAP允许用户登录到我们的系统。当用户名/密码正确时,一切正常。但当使用无效密码时,我们得到的只是错误代码49。 是否可能获得更有意义的错误消息。类似于:用户名/密码不正确 密码已过期 或 用户名已被禁用

我的代码是:

;-----------------------------------------------------------------------
; Initialise an ldap session (using PRIMARY DOMAIN CONTROLLER details)
; Get handle back to the session for use by subsequent calls
;-----------------------------------------------------------------------
activate "LDAP".LDAP_SSLINIT(v_handle,v_p_svr,v_p_port,v_ssl)
if($status != 0)        ;Failed 
    return(0)
endif

then

;---------------------------------------------------------
; Perform a BIND to the LDAP (thereby authenticating user)
;---------------------------------------------------------
activate "LDAP".LDAP_BIND_S(v_handle,v_dn,v_cred,v_method)

Uniface有点奇怪,但我认为对ldap的调用应该与Java中的调用相同。

来自RFC4511,附录a.2(),这意味着

RFC4511定义了这些标准错误代码


根据您的特定LDAP服务器,它可能会返回其他(非标准)错误代码(例如Oracle OID:)

您好,谢谢您的回复。是,当LDAP服务返回49时,表示凭据无效。但以下错误代码也应该可用:525用户未找到52e无效凭据我认为这些数字代码被标记到错误49上,以a/分隔。我认为$status不能处理这种类型的返回值。如果我将签名设置为将值作为第一个参数返回,它将返回为0或1,以指示成功或失败。所以,还是很困惑
invalidCredentials (49)
Indicates that the provided credentials (e.g., the user's name and password) are invalid.