Что означает код HRESULT 0x80090037 (NTE_PASSWORD_CHANGE_REQUIRED)?

 
Предыдущий Следующий
NTE_USER_CANCELLED NTE_NOT_ACTIVE_CONSOLE

NTE_PASSWORD_CHANGE_REQUIRED

Этот HRESULT указывает на сбой на этапе просроченных учётных данных поставщика. Предоставленные учётные данные ключа или токена распознаны, но их состояние требует замены до продолжения защищённых операций. Диагностируйте это в первом компоненте, вернувшем значение, а не в последнем слое интерфейса: последующая очистка и резервные попытки могут породить другие вторичные ошибки.

Читайте результат на правильном уровне

При этом результате защищённый поставщик может различать неправильный секрет, просроченный секрет, который необходимо сменить, и защитное состояние, где новые попытки игнорируются. Сохраняйте время попыток и состояние поставщика, иначе приложение может свести все случаи к общей ошибке PIN или пароля.

Используйте две оси сравнения

При этом результате остановите автоматические повторы. После периода ожидания или административного восстановления, определённого поставщиком, выполните одну помеченную попытку с заведомо действительными тестовыми учётными данными на непроизводственном объекте. Для истёкшего секрета используйте поддерживаемую процедуру смены, а не повторяйте старое значение.

Не смешивайте с соседним кодом

NTE_INCORRECT_PASSWORD означает, что текущее значение неверно; этот код — что жизненный цикл учётных данных требует обновления. Не делайте вывод о неверности секрета, если поставщик сообщил, что попытка была проигнорирована, и не сбрасывайте токен до фиксации данных о блокировке.

Проверка после изменения

Для этого результата поставщик должен снова нормально проверять учётные данные, применять свою политику повторов и выполнять защищённую операцию после необходимой смены или процедуры восстановления.

Технические ссылки

Эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных просроченных учётных данных поставщика.


Нужно найти другой код? Найти другой код состояния или ошибки.