Compartir a través de


Método IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface (bits10_3.h)

Los certificados de servidor se envían cuando se abre una conexión HTTPS. Use este método para establecer una devolución de llamada a para validar esos certificados de servidor.

Sintaxis

HRESULT SetServerCertificateValidationInterface(
  IUnknown *certValidationCallback
);

Parámetros

certValidationCallback

Tipo: IUnknown*

Puntero a un objeto que implementa IBackgroundCopyServerCertificateValidationCallback. Para quitar el puntero de interfaz de devolución de llamada actual, establezca este parámetro en nullptr.

Valor devuelto

Tipo: HRESULT

Si la función se ejecuta correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT.

Valor devuelto Descripción
E_NOINTERFACE Se pasa un puntero de interfaz que no se puede consultar para IBackgroundCopyServerCertificateValidationCallback.
BG_E_READ_ONLY_WHEN_JOB_ACTIVE El estado de un trabajo debe ser PAUSED para establecer la devolución de llamada.

Observaciones

Use este método cuando desee realizar sus propias comprobaciones en el certificado de servidor.

Llame a este método solo si implementa la interfaz IBackgroundCopyServerCertificateValidationCallback.

La interfaz de validación deja de ser válida cuando finaliza la aplicación; BITS no mantiene un registro de la interfaz de validación. Como resultado, el proceso de inicialización de la aplicación debe llamar a SetServerCertificateValidationInterface en esos trabajos existentes para los que desea recibir solicitudes de validación de certificados.

Si más de una aplicación llama a SetServerCertificateValidationInterface para establecer la interfaz de notificación para el trabajo, la última aplicación que se llamará es la que recibirá notificaciones. Las demás aplicaciones no recibirán notificaciones.

Si se encuentran errores de certificado durante la validación del sistema operativo del certificado, se anula la conexión y nunca se llama a la devolución de llamada personalizada. Puede personalizar la lógica de validación del sistema operativo con una llamada a IBackgroundCopyJobHttpOptions::SetSecurityFlags. Por ejemplo, puede omitir los errores de validación de certificados esperados.

Si se pasa la validación del sistema operativo, se llama al método IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate antes de completar el protocolo de enlace TLS y antes de enviar la solicitud HTTP.

Si el método de validación rechaza el certificado, el trabajo pasará a BG_JOB_STATE_TRANSIENT_ERROR con un contexto de error de trabajo de BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK y el error HRESULT desde la devolución de llamada. Si no se pudo llamar a la devolución de llamada (por ejemplo, porque BITS necesitaba validar un certificado de servidor después de salir del programa), el código de error del trabajo será BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Cuando la aplicación se ejecute a continuación, puede corregir este error estableciendo de nuevo la devolución de llamada de validación y reanudando el trabajo.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10, versión 1809 [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2016 [solo aplicaciones de escritorio]
encabezado de bits10_3.h (include Bits.h)
biblioteca de Bits.lib
DLL de Bits.dll

Consulte también

IBackgroundCopyServerCertificateValidationCallback