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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für