Metodo IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface (bits10_3.h)
I certificati server vengono inviati quando viene aperta una connessione HTTPS. Utilizzare questo metodo per impostare un callback da chiamare per convalidare i certificati del server.
Sintassi
HRESULT SetServerCertificateValidationInterface(
IUnknown *certValidationCallback
);
Parametri
certValidationCallback
Tipo: IUnknown*
Puntatore a un oggetto che implementa IBackgroundCopyServerCertificateValidationCallback. Per rimuovere il puntatore dell'interfaccia di callback corrente, impostare questo parametro su nullptr
.
Valore restituito
Se la funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore
Valore restituito | Descrizione |
---|---|
E_NOINTERFACE | Si passa un puntatore di interfaccia su cui non è possibile eseguire query per IBackgroundCopyServerCertificateValidationCallback. |
BG_E_READ_ONLY_WHEN_JOB_ACTIVE | Lo stato di un processo deve essere PAUSED per impostare il callback. |
Osservazioni
Utilizzare questo metodo quando si desidera eseguire controlli personalizzati sul certificato del server.
Chiamare questo metodo solo se si implementa l'interfaccia IBackgroundCopyServerCertificateValidationCallback.
L'interfaccia di convalida non è valida quando l'applicazione termina; BITS non gestisce un record dell'interfaccia di convalida. Di conseguenza, il processo di inizializzazione dell'applicazione deve chiamare SetServerCertificateValidationInterface su tali processi esistenti per cui si desidera ricevere richieste di convalida del certificato.
Se più di un'applicazione chiama SetServerCertificateValidationInterface per impostare l'interfaccia di notifica per il processo, l'ultima applicazione a chiamarla è quella che riceverà le notifiche. Le altre applicazioni non riceveranno notifiche.
Se vengono rilevati errori di certificato durante la convalida del sistema operativo del certificato, la connessione viene interrotta e il callback personalizzato non viene mai chiamato. È possibile personalizzare la logica di convalida del sistema operativo con una chiamata a IBackgroundCopyJobHttpOptions::SetSecurityFlags. Ad esempio, è possibile ignorare gli errori di convalida del certificato previsti.
Se la convalida del sistema operativo viene superata, viene chiamato il metodo IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate prima di completare l'handshake TLS e prima dell'invio della richiesta HTTP.
Se il metodo di convalida rifiuta il certificato, il processo passerà a BG_JOB_STATE_TRANSIENT_ERROR con un contesto di errore del processo di BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK e l'errore HRESULT dal callback. Se non è stato possibile chiamare il callback, ad esempio perché BITS è necessario per convalidare un certificato server dopo la chiusura del programma, il codice di errore del processo verrà BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Quando l'applicazione viene eseguita successivamente, può correggere l'errore impostando nuovamente il callback di convalida e riprendendo il processo.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10, versione 1809 [solo app desktop] |
server minimo supportato | Windows Server 2016 [solo app desktop] |
intestazione |
bits10_3.h (include Bits.h) |
libreria |
Bits.lib |
dll | Bits.dll |