Partager via


IBackgroundCopyJobHttpOptions3 ::SetServerCertificateValidationInterface, méthode (bits10_3.h)

Les certificats de serveur sont envoyés lorsqu’une connexion HTTPS est ouverte. Utilisez cette méthode pour définir un rappel à appeler pour valider ces certificats de serveur.

Syntaxe

HRESULT SetServerCertificateValidationInterface(
  IUnknown *certValidationCallback
);

Paramètres

certValidationCallback

Type : * IUnknown

Pointeur vers un objet qui implémente IBackgroundCopyServerCertificateValidationCallback. Pour supprimer le pointeur actuel de l’interface de rappel, définissez ce paramètre sur nullptr.

Valeur de retour

Type : HRESULT

Si la fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Valeur de retour Description
E_NOINTERFACE Vous passez un pointeur d’interface qui ne peut pas être interrogé pour IBackgroundCopyServerCertificateValidationCallback.
BG_E_READ_ONLY_WHEN_JOB_ACTIVE L’état d’un travail doit être PAUSED pour définir le rappel.

Remarques

Utilisez cette méthode lorsque vous souhaitez effectuer vos propres vérifications sur le certificat de serveur.

Appelez cette méthode uniquement si vous implémentez l’interface IBackgroundCopyServerCertificateValidationCallback.

L’interface de validation devient non valide lorsque votre application se termine ; BITS ne conserve pas d’enregistrement de l’interface de validation. Par conséquent, le processus d’initialisation de votre application doit appeler SetServerCertificateValidationInterface sur ces travaux existants pour lesquels vous souhaitez recevoir des demandes de validation de certificat.

Si plusieurs applications appellent SetServerCertificateValidationInterface pour définir l’interface de notification du travail, la dernière application à appeler est celle qui recevra des notifications. Les autres applications ne recevront pas de notifications.

Si des erreurs de certificat sont détectées pendant la validation du système d’exploitation du certificat, la connexion est abandonnée et le rappel personnalisé n’est jamais appelé. Vous pouvez personnaliser la logique de validation du système d’exploitation avec un appel à IBackgroundCopyJobHttpOptions ::SetSecurityFlags. Par exemple, vous pouvez ignorer les erreurs de validation de certificat attendues.

Si la validation du système d’exploitation réussit, la méthode IBackgroundCopyServerCertificateValidationCallback ::ValidateServerCertificate est appelée avant d’effectuer l’établissement d’une liaison TLS et avant l’envoi de la requête HTTP.

Si votre méthode de validation refuse le certificat, le travail passe à BG_JOB_STATE_TRANSIENT_ERROR avec un contexte d’erreur de travail de BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK et l’erreur HRESULT à partir de votre rappel. Si votre rappel n’a pas pu être appelé (par exemple, parce que BITS a besoin de valider un certificat de serveur après la sortie de votre programme), le code d’erreur du travail sera BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Lorsque votre application est exécutée à la prochaine exécution, elle peut corriger cette erreur en définissant à nouveau le rappel de validation et en réexécutant le travail.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1809 [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2016 [applications de bureau uniquement]
d’en-tête bits10_3.h (include Bits.h)
bibliothèque Bits.lib
DLL Bits.dll

Voir aussi

IBackgroundCopyServerCertificateValidationCallback