Как отличить варианты использования "пользователь должен сменить пароль при следующем входе в систему" ​​и "неправильный пароль"?

Я использую 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

-Джим

Другие вопросы по тегам