| Предыдущий | Следующий |
| ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT | ONL_E_REQUEST_THROTTLED |
ONL_E_USER_AUTHENTICATION_REQUIRED
В пределах Windows Online ID и интерактивной аутентификации учётной записи ONL_E_USER_AUTHENTICATION_REQUIRED (0x8086000F) сообщает, что операция требует актуальной аутентификации пользователя. Рассматривайте это как условие необходимости аутентификации пользователя Online ID и начинайте с запрошенной операции, результата silent token и последней интерактивной аутентификации, а не с итогового текста диалога.
Почему этот HRESULT специфичен
Broker может вернуть этот HRESULT до выдачи service ticket. Сохраняйте вместе асинхронную операцию, запрошенные scopes/tickets, идентичность приложения, UI-контекст и результат исправления состояния учётной записи; wrapper-сообщение вроде «не удалось войти» уничтожает это различие.
Решающий вопрос — подтверждают ли записанные данные, что операция требует актуальной аутентификации пользователя. Привязывайте доказательства к неудачной операции.
Данные, способные изменить диагноз
- Основная запись: запрошенная операция, результат silent token и последняя интерактивная аутентификация.
- Корреляция объекта: сохраняйте связанную с операцией, silent-token result и последней интерактивной аутентификацией идентичность продукта, учётной записи, пакета, устройства, ключа или API рядом с первым результатом с временной меткой.
- Контроль соседнего состояния: используйте контролируемое сравнение, проверяющее, что это требование аутентификации без подразумеваемой приостановки учётной записи или принудительной смены пароля.
- Результат до/после: сохраните результат до и после исправления «вызвать интерактивный broker request и продолжить только после успешной аутентификации пользователя»; сохраняйте те же идентификаторы до нового результата broker.
Как отличить соседние сбои
Соседнее условие: Этот статус задаёт предпосылку аутентификации, не подразумевая account suspension или forced password change. Сохраняйте исходные данные операции неизменными, меняя только указанную предпосылку.
Контролируемая последовательность диагностики
- Найдите точный объект: Используйте основную запись, чтобы определить транзакцию или лицензированный объект, который фактически вернул
ONL_E_USER_AUTHENTICATION_REQUIRED. - Сохраните первое решение: Запишите самое раннее событие о необходимости актуальной аутентификации пользователя вместе с кодом, временем UTC и теми же полями идентичности.
- Измените одну предпосылку: Вызовите интерактивный broker request и продолжайте только после успешной аутентификации пользователя; не объединяйте это со сбросом store, заменой ключа, удалением учётной записи, переустановкой пакета или несвязанным repair.
- Повторите пользовательскую операцию: Повторно выполните исходную операцию и требуйте, чтобы broker вернул новый результат; если появится другой HRESULT, диагностируйте его как новую границу.
Предосторожности для сохранения доказательств
При исследовании ONL_E_USER_AUTHENTICATION_REQUIRED, не собирайте пароли или tokens в диагностические журналы и не обходите broker UI встроенными формами ввода учётных данных. Такой обход может заменить или обесценить доказательства до понимания исходного решения.
Проверка результата
Инцидент считается устранённым только когда broker возвращает новый результат. Подтвердите его повторением точно той операции, которая выдала ONL_E_USER_AUTHENTICATION_REQUIRED; успешное обслуживание само по себе недостаточно.
Технические ссылки
- Microsoft Win32 metadata: winerror.h — справочник определения статуса.
- Microsoft: ошибки Web Account Manager — справочник сервиса/API-владельца.
- Microsoft: класс OnlineIdAuthenticator — справочник API диагностики/исправления.
- Microsoft: OnlineIdAuthenticator.AuthenticateUserAsync — справочник жизненного цикла.
Нужно найти другой код? Найти другой код состояния или ошибки.