2016-02-29 3 views
0

Доброе утро,UNIFACE LDAP Аутентификация пользователя

Мы используем LDAP в пределах uniface, чтобы пользователи могли входить в систему. Когда имя пользователя/пароль верны, все в порядке. Но когда используется неверный пароль, мы получаем код ошибки 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, Приложение А.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 может вернуть дополнительные (нестандартные) коды ошибок (как, например, Oracle OID: http://docs.oracle.com/cd/B28196_01/idmanage.1014/b15991/trblsht.htm#CHDFJBIG)

+0

Привет, спасибо за ответ. Да, когда служба LDAP возвращает 49, это означает недопустимые учетные данные. Но также должны быть доступны следующие коды ошибок: 525 \t пользователь не найден 52e \t недействительные учетные данные Я думаю, что эти числовые коды попадают на ошибку 49, разделенную на /. Я думаю, что $ status не способен обрабатывать этот тип возвращаемого значения. Если я установил подпись, чтобы вернуть значение в качестве первого параметра, оно возвращается как 0 или 1, чтобы указать успех или неудачу. Итак, все еще запутано –