Метод 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

См. также раздел

IBackgroundCopyServerCertificateValidationCallback