Freigeben über


IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface-Methode (bits10_3.h)

Serverzertifikate werden gesendet, wenn eine HTTPS-Verbindung geöffnet wird. Verwenden Sie diese Methode, um festzulegen, dass ein Rückruf aufgerufen wird, um diese Serverzertifikate zu überprüfen.

Syntax

HRESULT SetServerCertificateValidationInterface(
  IUnknown *certValidationCallback
);

Parameter

certValidationCallback

Typ: IUnknown*

Ein Zeiger auf ein Objekt, das IBackgroundCopyServerCertificateValidationCallback implementiert. Um den aktuellen Rückrufschnittstellenzeiger zu entfernen, legen Sie diesen Parameter auf fest nullptr.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Rückgabewert BESCHREIBUNG
E_NOINTERFACE Sie übergeben einen Schnittstellenzeiger, der nicht nach IBackgroundCopyServerCertificateValidationCallback abgefragt werden kann.
BG_E_READ_ONLY_WHEN_JOB_ACTIVE Der Status eines Auftrags muss ANGEHALTEN sein, um den Rückruf festzulegen.

Hinweise

Verwenden Sie diese Methode, wenn Sie eigene Überprüfungen für das Serverzertifikat durchführen möchten.

Rufen Sie diese Methode nur auf, wenn Sie die IBackgroundCopyServerCertificateValidationCallback-Schnittstelle implementieren.

Die Validierungsschnittstelle wird ungültig, wenn Ihre Anwendung beendet wird. BITS verwaltet keinen Datensatz der Validierungsschnittstelle. Daher sollte der Initialisierungsprozess Ihrer Anwendung SetServerCertificateValidationInterface für die vorhandenen Aufträge aufrufen, für die Sie Zertifikatüberprüfungsanforderungen empfangen möchten.

Wenn mehr als eine Anwendung SetServerCertificateValidationInterface aufruft, um die Benachrichtigungsschnittstelle für den Auftrag festzulegen, wird die letzte Anwendung aufgerufen, die Benachrichtigungen empfängt. Die anderen Anwendungen erhalten keine Benachrichtigungen.

Wenn während der Betriebssystemüberprüfung des Zertifikats Zertifikats Zertifikatfehler gefunden werden, wird die Verbindung abgebrochen, und der benutzerdefinierte Rückruf wird nie aufgerufen. Sie können die Logik für die Betriebssystemüberprüfung mit einem Aufruf von IBackgroundCopyJobHttpOptions::SetSecurityFlags anpassen. 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 Ihre Validierungsmethode das Zertifikat ablehnt, wechselt der Auftrag zu BG_JOB_STATE_TRANSIENT_ERROR mit dem Auftragsfehlerkontext BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK und dem Fehler HRESULT aus Dem Rückruf. Wenn Der Rückruf nicht aufgerufen werden konnte (z. B. weil BITS nach Dem Beenden des Programms ein Serverzertifikat überprüfen musste), wird der Auftragsfehlercode BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Bei der nächsten Ausführung ihrer Anwendung kann dieser Fehler behoben werden, indem der Überprüfungsrückruf erneut festgelegt und der Auftrag fortgesetzt wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1809 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2016 [nur Desktop-Apps]
Kopfzeile bits10_3.h (Bits.h einschließen)
Bibliothek Bits.lib
DLL Bits.dll

Weitere Informationen

IBackgroundCopyServerCertificateValidationCallback