2016-02-29 76 views
0

早上好,UNIFACE LDAP用戶認證

我們在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。

回答

0

從RFC4511,附錄A.2(https://tools.ietf.org/html/rfc4511#appendix-A.2)。這意味着

invalidCredentials (49) 
Indicates that the provided credentials (e.g., the user's name and password) are invalid. 

的RFC4511定義了這些標準的錯誤代碼。

根據您的具體的LDAP服務器上,可以返還額外的(非標準)的錯誤代碼(例如像甲骨文OID:http://docs.oracle.com/cd/B28196_01/idmanage.1014/b15991/trblsht.htm#CHDFJBIG

+0

您好,感謝您的答覆。是的,當LDAP服務返回49它確實意味着無效的憑據。但是也應該提供以下錯誤代碼:525 \t用戶未找到 52e \t無效憑據 我認爲這些數字代碼被標記到由/分隔的錯誤49上。我在想$狀態不能處理這種類型的返回值。如果我將簽名設置爲返回值作爲第一個參數,它將返回0或1以指示成功或失敗。所以,仍然困惑 –