Как отличить варианты использования "пользователь должен сменить пароль при следующем входе в систему" и "неправильный пароль"?
Я использую UnboundID для аутентификации в Active Directory. У меня тот же код ошибки, когда я аутентифицируюсь с неверным паролем и когда пользователь настроен на "пользователь должен изменить пароль при следующем входе в систему". Исключение "неправильный пароль":
LDAPException(resultCode=49 (invalid credentials), errorMessage='80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece
Исключение "пользователь должен сменить пароль при следующем входе в систему":
LDAPException(resultCode=49 (invalid credentials), errorMessage='80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 773, vece
Единственная разница - это значение слова data в сообщении об исключении. Я не хочу полагаться на сообщение. Как отличить варианты использования "пользователь должен сменить пароль при следующем входе в систему" и "неправильный пароль"?
1 ответ
Беглый взгляд на эту страницу:
http://ldapwiki.willeke.com/wiki/Common%20Active%20Directory%20Bind%20Errors
Показывает, что: data 52e = Возвращает, когда имя пользователя допустимо, но пароль / учетные данные недействительны.
data 773 = Пароль входа должен быть изменен перед входом в LDAP. pwdLastSet: значение 0 указывает на изменение пароля, требуемое администратором - MUST_CHANGE_PASSWD
-Джим