IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface-Methode (bits10_3.h)
Serverzertifikate werden gesendet, wenn eine HTTPS-Verbindung geöffnet wird. Verwenden Sie diese Methode, um einen Rückruf festzulegen, der aufgerufen wird, um diese Serverzertifikate zu überprüfen.
Syntax
HRESULT SetServerCertificateValidationInterface(
IUnknown *certValidationCallback
);
Parameter
certValidationCallback
Typ: IUnknown*
Ein Zeiger auf ein Objekt, das IBackgroundCopyServerCertificateValidationCallbackimplementiert. Um den aktuellen Zeiger der Rückrufschnittstelle zu entfernen, legen Sie diesen Parameter auf nullptr
fest.
Rückgabewert
Typ: HRESULT-
Wenn die Funktion erfolgreich ist, wird S_OKzurückgegeben. Andernfalls wird ein HRESULT-Fehlercodezurückgegeben.
Rückgabewert | Beschreibung |
---|---|
E_NOINTERFACE | Sie übergeben einen Schnittstellenzeiger, der für IBackgroundCopyServerCertificateValidationCallbacknicht abgefragt werden kann. |
BG_E_READ_ONLY_WHEN_JOB_ACTIVE | Der Status eines Auftrags muss angehalten werden, um den Rückruf festzulegen. |
Bemerkungen
Verwenden Sie diese Methode, wenn Sie ihre eigenen Prüfungen auf dem Serverzertifikat durchführen möchten.
Rufen Sie diese Methode nur auf, wenn Sie die IBackgroundCopyServerCertificateValidationCallback Schnittstelle implementieren.
Die Überprüfungsschnittstelle wird ungültig, wenn die Anwendung beendet wird. BITS verwaltet keinen Datensatz der Überprüfungsschnittstelle. Daher sollte der Initialisierungsprozess Ihrer Anwendung SetServerCertificateValidationInterface für diese vorhandenen Aufträge aufrufen, für die Sie Zertifikatüberprüfungsanforderungen erhalten möchten.
Wenn mehrere Anwendungen SetServerCertificateValidationInterface aufrufen, um die Benachrichtigungsschnittstelle für den Auftrag festzulegen, wird die letzte Anwendung aufgerufen, die Benachrichtigungen empfängt. Die anderen Anwendungen erhalten keine Benachrichtigungen.
Wenn zertifikatfehler während der Betriebssystemüberprüfung des Zertifikats gefunden werden, wird die Verbindung abgebrochen, und der benutzerdefinierte Rückruf wird nie aufgerufen. Sie können die Betriebssystemüberprüfungslogik mit einem Aufruf von IBackgroundCopyJobHttpOptions::SetSecurityFlagsanpassen. Sie können beispielsweise erwartete Fehler bei der Zertifikatüberprüfung ignorieren.
Wenn die Betriebssystemüberprüfung erfolgreich ist, wird die IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate-Methode aufgerufen, bevor der TLS-Handshake abgeschlossen wird und bevor die HTTP-Anforderung gesendet wird.
Wenn die Validierungsmethode das Zertifikat ablehnt, wechselt der Auftrag mit einem Auftragsfehlerkontext von BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK zu BG_JOB_STATE_TRANSIENT_ERROR und der Fehler HRESULT- aus dem Rückruf. Wenn Ihr Rückruf nicht aufgerufen werden konnte (z. B. weil BITS zum Überprüfen eines Serverzertifikats nach dem Beenden des Programms erforderlich ist), wird der Auftragsfehlercode BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Wenn die Anwendung als nächstes ausgeführt wird, kann dieser Fehler behoben werden, indem sie den Überprüfungsrückruf erneut festlegen und den Auftrag fortsetzen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10, Version 1809 [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2016 [nur Desktop-Apps] |
Header- | bits10_3.h (bits.h einschließen) |
Library | Bits.lib |
DLL- | Bits.dll |