Метод IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface (bits10_3.h)
Сертификаты сервера отправляются при открытии HTTPS-подключения. Используйте этот метод, чтобы задать обратный вызов для проверки сертификатов сервера.
Синтаксис
HRESULT SetServerCertificateValidationInterface(
IUnknown *certValidationCallback
);
Параметры
certValidationCallback
Тип: IUnknown*
Указатель на объект, реализующий IBackgroundCopyServerCertificateValidationCallback. Чтобы удалить текущий указатель интерфейса обратного вызова, задайте для этого параметра значение nullptr
.
Возвращаемое значение
Тип: HRESULT
Если функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибкиHRESULT.
Возвращаемое значение | Описание |
---|---|
E_NOINTERFACE | Передайте указатель интерфейса, который не может быть запрошен для IBackgroundCopyServerCertificateValidationCallback. |
BG_E_READ_ONLY_WHEN_JOB_ACTIVE | Чтобы задать обратный вызов, задание должно быть ПРИОСТАНОВЛЕНо. |
Комментарии
Используйте этот метод, если требуется выполнить собственные проверки сертификата сервера.
Вызывайте этот метод, только если вы реализуете интерфейс IBackgroundCopyServerCertificateValidationCallback .
Интерфейс проверки становится недопустимым при завершении работы приложения; BITS не поддерживает запись интерфейса проверки. В результате процесс инициализации приложения должен вызывать Метод SetServerCertificateValidationInterface для существующих заданий, для которых требуется получать запросы на проверку сертификата.
Если несколько приложений вызывают SetServerCertificateValidationInterface , чтобы задать интерфейс уведомлений для задания, последнее вызывающее его приложение будет получать уведомления. Другие приложения не будут получать уведомления.
Если во время проверки ОС сертификата обнаружены ошибки сертификата, подключение прерывается, а пользовательский обратный вызов никогда не вызывается. Вы можете настроить логику проверки ОС с помощью вызова метода IBackgroundCopyJobHttpOptions::SetSecurityFlags. Например, можно игнорировать ожидаемые ошибки проверки сертификатов.
Если проверка ОС пройдена, метод IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate вызывается перед завершением подтверждения TLS и перед отправкой HTTP-запроса.
Если ваш метод проверки отклоняет сертификат, задание перейдет в BG_JOB_STATE_TRANSIENT_ERROR с контекстом ошибки задания BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK и ошибкой HRESULT из обратного вызова. Если не удалось вызвать обратный вызов (например, из-за того, что bits необходимо проверить сертификат сервера после выхода из программы), код ошибки задания будет BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. При следующем запуске приложение может исправить эту ошибку, повторно настроив обратный вызов проверки и возобновив задание.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10, версия 1809 [только классические приложения] |
Минимальная версия сервера | Windows Server 2016 [только классические приложения] |
Верхняя часть | bits10_3.h (включая Bits.h) |
Библиотека | Bits.lib |
DLL | Bits.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе:Отправить и просмотреть отзыв по