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
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 |