Partager via


Méthode IBackgroundCopyJobHttpOptions3 ::SetServerCertificateValidationInterface (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 afin de 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 d’interface de rappel actuel, définissez ce paramètre sur nullptr.

Valeur retournée

Type : HRESULT

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

Valeur retournée 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 à l’arrêt de votre application ; 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 les 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 à l’appeler est celle qui recevra des notifications. Les autres applications ne recevront pas de notifications.

Si des erreurs de certificat sont détectées lors de 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 de terminer la négociation 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 de votre rappel. Si votre rappel n’a pas pu être appelé (par exemple, parce que BITS devait valider un certificat de serveur après la fermeture de votre programme), le code d’erreur du travail sera BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Lors de la prochaine exécution de votre application, elle peut corriger cette erreur en définissant à nouveau le rappel de validation et en reprenant le travail.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1809 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2016 (applications de bureau uniquement)
En-tête bits10_3.h (include Bits.h)
Bibliothèque Bits.lib
DLL Bits.dll

Voir aussi

IBackgroundCopyServerCertificateValidationCallback