Método IX509Enrollment::InstallResponse (certenroll.h)

O método InstallResponse instala uma cadeia de certificados no computador de entidade final. A matriz de bytes que contém a resposta é codificada usando Distinguished Encoding Rules (DER) conforme definido pelo padrão ASN.1 (Abstract Syntax Notation One). Você deve especificar a matriz de bytes codificada em DER em uma cadeia de caracteres que seja uma sequência binária pura ou esteja codificada em Unicode. Esse método está habilitado para a Web.

Sintaxe

HRESULT InstallResponse(
  [in]           InstallResponseRestrictionFlags Restrictions,
  [in]           BSTR                            strResponse,
  [in]           EncodingType                    Encoding,
  [in, optional] BSTR                            strPassword
);

Parâmetros

[in] Restrictions

Um valor de enumeração InstallResponseRestrictionFlags que especifica o tipo de certificados que podem ser instalados. Esse pode ser um ou mais dos valores a seguir.

Valor Significado
AllowNone
Não instale certificados ou certificados não confiáveis para os quais não há nenhuma solicitação correspondente.
AllowNoOutstandingRequest
Crie a chave privada a partir da resposta do certificado em vez do certificado fictício. Isso torna o certificado fictício opcional. Se esse valor não estiver definido, o certificado fictício deverá existir e a chave privada será extraída dele.
AllowUntrustedCertificate
Instale certificados de autoridade de certificação e entidade final não confiáveis. Os certificados de autoridade de certificação incluem certificados de autoridade de certificação raiz e subordinada. Os certificados de entidade final são instalados no repositório pessoal e os certificados de AUTORIDADE são instalados no repositório de autoridades de certificação.
AllowUntrustedRoot
Execute a mesma ação que o sinalizador AllowUntrustedCertificate , mas também instale o certificado mesmo que a cadeia de certificados não possa ser criada porque a raiz não é confiável.
Nota No Windows Vista, o comportamento desse sinalizador é o mesmo definido para o sinalizador AllowUntrustedCertificate . A partir do Windows Vista com o SP1, você pode instalar um certificado que se encadeia a uma raiz não confiável.
 

[in] strResponse

Uma variável BSTR que contém a resposta codificada em DER.

[in] Encoding

Um valor de enumeração EncodingType que especifica o tipo de codificação aplicado à cadeia de caracteres que contém a resposta codificada em DER.

[in, optional] strPassword

Uma senha opcional para a instalação do certificado. Isso pode ser NULL ou uma cadeia de caracteres vazia para indicar que nenhuma senha é usada. Se houver uma senha, limpe-a da memória quando terminar de usá-la chamando a função SecureZeroMemory . Para obter mais informações sobre como proteger a senha, consulte Manipulando senhas.

A partir do Windows 8 e do Windows Server 2012, uma senha NULL ou vazia pode significar que o pacote PFX foi criado na função PFXExportCertStoreEx usando o sinalizador PKCS12_PROTECT_TO_DOMAIN_SIDS . Nesse caso, o PFX foi criptografado para um grupo do Active Directory. Para obter mais informações, consulte PFXExportCertStoreEx e PFXImportCertStore.

Valor retornado

Se a função for bem-sucedida, a função retornará S_OK.

Se a função falhar, ela retornará um valor HRESULT que indica o erro. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Código de retorno Descrição
E_ACCESSDENIED
Esse método foi chamado da Web e AllowNoOutstandingRequest ou AllowUntrustedCertificate foi especificado no parâmetro Restrictions .
HRESULT_FROM_WIN32(ERROR_ARITHMETIC_OVERFLOW
O comprimento da cadeia de caracteres que contém a senha excede 64 quilobytes.
OLE_E_BLANK
O objeto de registro não foi inicializado.

Comentários

O método InstallResponse :

  1. Recupera o certificado fictício do repositório externo.
  2. Recupera o certificado contido na resposta e o instala no computador.
  3. Copia as propriedades do certificado fictício no repositório externo para o certificado recém-instalado no repositório pessoal.

Antes de chamar o método InstallResponse , você deve inicializar o objeto IX509Enrollment chamando um dos métodos a seguir.

Se você chamar esse método da Web, poderá especificar somente AllowNone ou AllowUntrustedRoot no parâmetro Restrictions . Se você especificar AllowNoOutstandingRequest ou AllowUntrustedCertificate, o método retornará um erro E_ACCESSDENIED .

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certenroll.h
DLL CertEnroll.dll

Confira também

IX509Enrollment