Compartilhar via


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

Os certificados do 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.

Valor de retorno

Tipo: HRESULT

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

Valor de retorno 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 PAUSADO para definir o retorno de chamada.

Observações

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 nos 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 método será chamado antes de concluir o handshake do 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
de cliente com suporte mínimo Windows 10, versão 1809 [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2016 [somente aplicativos da área de trabalho]
cabeçalho bits10_3.h (incluir Bits.h)
biblioteca Bits.lib
de DLL Bits.dll

Consulte também

IBackgroundCopyServerCertificateValidationCallback