| Предыдущий | Следующий |
| ONL_E_ACCOUNT_SUSPENDED_ABUSE | ONL_CONNECTION_COUNT_LIMIT |
ONL_E_ACTION_REQUIRED
В пределах Windows Online ID и интерактивной аутентификации учётной записи ONL_E_ACTION_REQUIRED (0x8086000C) сообщает, что аутентификация требует видимого действия пользователя, недоступного при silent token acquisition. Рассматривайте это как условие необходимого действия пользователя Online ID и начинайте с требования broker prompt, запрошенного scope и текущего window context, а не с итогового текста диалога.
Почему этот HRESULT специфичен
Broker может вернуть этот HRESULT до выдачи service ticket. Сохраняйте вместе асинхронную операцию, запрошенные scopes/tickets, идентичность приложения, UI-контекст и результат исправления состояния учётной записи; wrapper-сообщение вроде «не удалось войти» уничтожает это различие.
Решающий вопрос — подтверждают ли записанные данные, что аутентификация требует видимого действия пользователя, невозможного при silent token acquisition. Привязывайте доказательства к неудачной операции.
Данные, способные изменить диагноз
- Основная запись: требование broker prompt, запрошенный scope и текущий window context.
- Корреляция объекта: сохраняйте связанную с broker prompt, scope и window context идентичность продукта, учётной записи, пакета, устройства, ключа или API рядом с первым результатом с временной меткой.
- Контроль соседнего состояния: используйте контролируемое сравнение, проверяющее, что общий статус «требуется действие» не означает ошибку пароля и должен разрешаться интерактивно.
- Результат до/после: сохраните результат до и после исправления «показать broker UI из действительного foreground window и отдельно обработать отмену»; сохраняйте те же идентификаторы до нового результата broker.
Как отличить соседние сбои
Соседнее условие: Общий статус «требуется действие» не означает ошибку пароля и должен разрешаться интерактивно. Сохраняйте неизменными требование broker prompt, запрошенный scope и window context, меняя только указанную предпосылку.
Контролируемая последовательность диагностики
- Найдите точный объект: Используйте основную запись, чтобы определить транзакцию или лицензированный объект, который фактически вернул
ONL_E_ACTION_REQUIRED. - Сохраните первое решение: Запишите самое раннее событие о необходимости видимого действия пользователя вместе с кодом, временем UTC и теми же полями идентичности.
- Измените одну предпосылку: Покажите broker UI из действительного foreground window и отдельно обработайте отмену; не объединяйте это со сбросом store, заменой ключа, удалением учётной записи, переустановкой пакета или несвязанным repair.
- Повторите пользовательскую операцию: Повторно выполните исходную операцию и требуйте, чтобы broker вернул новый результат; если появится другой HRESULT, диагностируйте его как новую границу.
Предосторожности для сохранения доказательств
При исследовании ONL_E_ACTION_REQUIRED, не собирайте пароли или tokens в диагностические журналы и не обходите broker UI встроенными формами ввода учётных данных. Такой обход может заменить или обесценить доказательства до понимания исходного решения.
Проверка результата
Инцидент считается устранённым только когда broker возвращает новый результат. Подтвердите его повторением точно той операции, которая выдала ONL_E_ACTION_REQUIRED; успешное обслуживание само по себе недостаточно.
Технические ссылки
- Microsoft Win32 metadata: winerror.h — справочник определения статуса.
- Microsoft: ошибки Web Account Manager — справочник сервиса/API-владельца.
- Microsoft: класс OnlineIdAuthenticator — справочник API диагностики/исправления.
- Microsoft: OnlineIdAuthenticator.AuthenticateUserAsync — справочник жизненного цикла.
Нужно найти другой код? Найти другой код состояния или ошибки.