| Предыдущий | Следующий |
| SEC_I_LOCAL_LOGON | SEC_I_INCOMPLETE_CREDENTIALS |
SEC_I_CONTEXT_EXPIRED
Что означает SEC_I_CONTEXT_EXPIRED
SEC_I_CONTEXT_EXPIRED — информационный статус SSPI: контекст безопасности завершён и больше не должен использоваться для обычного обмена данными. В Schannel DecryptMessage может вернуть этот статус, когда удалённая сторона закончила работу с соединением и инициировала штатное TLS-закрытие.
Как интерпретировать результат
Сам по себе этот код не означает ошибку сертификата, cipher suite или credential handle. Если он получен после обмена прикладными данными, сначала рассматривайте его как событие жизненного цикла соединения, а не как неудачный handshake.
- Зафиксируйте функцию SSPI, которая вернула статус, и фазу соединения: handshake, обмен данными или shutdown.
- Для Schannel проверьте, был ли получен TLS
close_notifyи отправлен ли ответный shutdown token в соответствии с вашим протоколом закрытия. - После завершения контекста не вызывайте
EncryptMessage/DecryptMessageкак будто соединение остаётся активным. Создайте новый контекст для нового соединения. - Если закрытие неожиданно для приложения, выясняйте, почему peer завершил сессию: таймаут, штатное завершение запроса, перезапуск службы или собственная логика протокола.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.