Metodo IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface (bits10_3.h)
I certificati server vengono inviati quando viene aperta una connessione HTTPS. Usare questo metodo per impostare un callback da chiamare per convalidare tali 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
Tipo: HRESULT
Se la funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di erroreHRESULT.
Valore restituito | Descrizione |
---|---|
E_NOINTERFACE | Si passa un puntatore di interfaccia che non può essere sottoposto a query per IBackgroundCopyServerCertificateValidationCallback. |
BG_E_READ_ONLY_WHEN_JOB_ACTIVE | Lo stato di un processo deve essere PAUSED per impostare il callback. |
Commenti
Usare 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 diventa non valida quando l'applicazione termina; BITS non mantiene un record dell'interfaccia di convalida. Di conseguenza, il processo di inizializzazione dell'applicazione deve chiamare SetServerCertificateValidationInterface nei processi esistenti per i quali 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 da chiamare è 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 dei certificati previsti.
Se la convalida del sistema operativo passa, 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 il callback non è stato chiamato (ad esempio, perché BITS deve convalidare un certificato server dopo l'uscita dal programma), il codice di errore del processo verrà BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Quando l'applicazione viene eseguita successivamente, può correggere questo errore impostando nuovamente il callback di convalida e riprendendo il processo.
Requisiti
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 (includere Bits.h) |
Libreria | Bits.lib |
DLL | Bits.dll |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per