Compartilhar via


Método IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface (bits10_3.h)

Os certificados de servidor são enviados quando uma conexão HTTPS é aberta. Use esse método para definir um retorno de chamada a ser chamado para validar esses certificados de servidor.

Sintaxe

HRESULT SetServerCertificateValidationInterface(
  IUnknown *certValidationCallback
);

Parâmetros

certValidationCallback

Tipo: IUnknown*

Um ponteiro para um objeto que implementa IBackgroundCopyServerCertificateValidationCallback. Para remover o ponteiro da interface de retorno de chamada atual, defina esse parâmetro como nullptr.

Retornar valor

Tipo: HRESULT

Se a função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erroHRESULT.

Valor retornado Descrição
E_NOINTERFACE Você passa um ponteiro de interface que não pode ser consultado para IBackgroundCopyServerCertificateValidationCallback.
BG_E_READ_ONLY_WHEN_JOB_ACTIVE O estado de um trabalho deve ser PAUSED para definir o retorno de chamada.

Comentários

Use esse método quando quiser executar suas próprias verificações no certificado do servidor.

Chame esse método somente se você implementar a interface IBackgroundCopyServerCertificateValidationCallback .

A interface de validação torna-se inválida quando seu aplicativo é encerrado; O BITS não mantém um registro da interface de validação. Como resultado, o processo de inicialização do aplicativo deve chamar SetServerCertificateValidationInterface nesses trabalhos existentes para os quais você deseja receber solicitações de validação de certificado.

Se mais de um aplicativo chamar SetServerCertificateValidationInterface para definir a interface de notificação para o trabalho, o último aplicativo a chamá-lo será aquele que receberá notificações. Os outros aplicativos não receberão notificações.

Se algum erro de certificado for encontrado durante a validação do sistema operacional do certificado, a conexão será anulada e o retorno de chamada personalizado nunca será chamado. Você pode personalizar a lógica de validação do sistema operacional com uma chamada para IBackgroundCopyJobHttpOptions::SetSecurityFlags. Por exemplo, você pode ignorar os erros de validação de certificado esperados.

Se a validação do sistema operacional for aprovada, o método IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate será chamado antes de concluir o handshake TLS e antes que a solicitação HTTP seja enviada.

Se o método de validação recusar o certificado, o trabalho fará a transição para BG_JOB_STATE_TRANSIENT_ERROR com um contexto de erro de trabalho de BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK e o erro HRESULT do retorno de chamada. Se o retorno de chamada não puder ser chamado (por exemplo, porque o BITS precisava validar um certificado do servidor após a saída do programa), o código de erro do trabalho será BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. Quando o aplicativo for executado na próxima execução, ele poderá corrigir esse erro definindo o retorno de chamada de validação novamente e retomando o trabalho.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1809 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2016 [somente aplicativos da área de trabalho]
Cabeçalho bits10_3.h (inclua Bits.h)
Biblioteca Bits.lib
DLL Bits.dll

Confira também

IBackgroundCopyServerCertificateValidationCallback