Что означает код HRESULT 0x80860006 (ONL_E_FORCESIGNIN)?

 
Предыдущий Следующий
ONL_E_ACCOUNT_UPDATE_REQUIRED ONL_E_ACCOUNT_LOCKED

ONL_E_FORCESIGNIN

В пределах Windows Online ID и интерактивной аутентификации учётной записи ONL_E_FORCESIGNIN (0x80860006) сообщает, что учётная запись должна снова выполнить интерактивный вход. Рассматривайте это как условие принудительного интерактивного входа Online ID и начинайте со сравнения silent/interactive request, возраста token и ответа broker, а не с итогового текста диалога.

Почему этот HRESULT специфичен

Broker может вернуть этот HRESULT до выдачи service ticket. Сохраняйте вместе асинхронную операцию, запрошенные scopes/tickets, идентичность приложения, UI-контекст и результат исправления состояния учётной записи; wrapper-сообщение вроде «не удалось войти» уничтожает это различие.

Решающий вопрос — подтверждают ли записанные данные, что учётная запись должна снова выполнить интерактивный вход. Привязывайте доказательства к неудачной операции.

Как отличить соседние сбои

Ключевое различие: принудительный вход — намеренная reauthentication, а не обязательно повреждение token. Корректный принудительного интерактивного входа Online ID тест сохраняет рядом тип silent/interactive request, возраст token и ответ broker и меняет только одну поддерживаемую предпосылку.

Данные, способные изменить диагноз

  • Основная запись: тип silent/interactive request, возраст token и ответ broker.
  • Корреляция объекта: сохраняйте связанную с типом запроса, возрастом token и ответом broker идентичность продукта, учётной записи, пакета, устройства, ключа или API рядом с первым результатом с временной меткой.
  • Контроль соседнего состояния: используйте контролируемое сравнение, проверяющее, что forced sign-in — намеренная повторная аутентификация, а не обязательно повреждение token.
  • Результат до/после: сохраните результат до и после исправления «разрешить один foreground authentication flow и заменить устаревшие кэшированные результаты»; сохраняйте те же идентификаторы до нового результата broker.

Контролируемая последовательность диагностики

  1. Найдите точный объект: Используйте основную запись, чтобы определить транзакцию или лицензированный объект, который фактически вернул ONL_E_FORCESIGNIN.
  2. Сохраните первое решение: Запишите самое раннее событие о необходимости повторного интерактивного входа вместе с кодом, временем UTC и теми же полями идентичности.
  3. Измените одну предпосылку: Разрешите один foreground authentication flow и замените устаревшие кэшированные результаты; не объединяйте это со сбросом store, заменой ключа, удалением учётной записи, переустановкой пакета или несвязанным repair.
  4. Повторите пользовательскую операцию: Повторно выполните исходную операцию и требуйте, чтобы broker вернул новый результат; если появится другой HRESULT, диагностируйте его как новую границу.

Предосторожности для сохранения доказательств

При исследовании ONL_E_FORCESIGNIN, не собирайте пароли или tokens в диагностические журналы и не обходите broker UI встроенными формами ввода учётных данных. Такой обход может заменить или обесценить доказательства до понимания исходного решения.

Проверка результата

Инцидент считается устранённым только когда broker возвращает новый результат. Подтвердите его повторением точно той операции, которая выдала ONL_E_FORCESIGNIN; успешное обслуживание само по себе недостаточно.

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


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