Condividi tramite


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

IBackgroundCopyServerCertificateValidationCallback