Método ICertRequest3::SetCredential (certcli.h)

O método SetCredential define a credencial usada para contatar o Serviço Web de Registro de Certificado.

Sintaxe

HRESULT SetCredential(
  [in] LONG                    hWnd,
  [in] X509EnrollmentAuthFlags AuthType,
  [in] BSTR                    strCredential,
  [in] BSTR                    strPassword
);

Parâmetros

[in] hWnd

Um identificador para a janela pai.

Você deve definir o parâmetro hWnd em que há uma interface do usuário apresentada para obter a credencial.

Para autorização baseada em certificado, o identificador será usado se um prompt de interface do usuário for necessário para obter a credencial, por exemplo, se a credencial estiver em um cartão inteligente e um prompt de fixação for necessário.

Ao usar Kerberos, anônimo ou nome de usuário e autenticação de senha, esse parâmetro é ignorado.

[in] AuthType

Um valor da enumeração X509EnrollmentAuthFlags que especifica o tipo de autenticação.

Valor Significado
X509AuthAnonymous
Autenticação anônima.

Defina os parâmetros strCredential e strPassword comoNULL ou como cadeias de caracteres vazias.

X509AuthCertificate
Certificado de autenticação do cliente instalado no computador local. O certificado contém uma chave pública associada a uma chave privada (não contida no certificado). O certificado é usado pelo servidor para verificar a identidade do cliente.

O parâmetro strCredential contém um hash SHA-1 binário de 20 bytes do certificado a ser passado para o Serviço Web de Registro de Certificado para autenticar o chamador. Defina o parâmetro strPassword comoNULL ou uma cadeia de caracteres vazia. O parâmetro strCredential deve se referir a um certificado instalado no repositório de certificados pessoais relevante e deve ter uma chave privada associada acessível ao chamador.

X509AuthKerberos
Autenticação Kerberos.

Defina os parâmetros strCredential e strPassword comoNULL ou como cadeias de caracteres vazias.

X509AuthUsername
Autenticação de senha e nome de usuário de texto sem formatação. O nome de usuário e a senha são criptografados quando são armazenados no cofre de credenciais no cliente.

Os parâmetros strCredential e strPassword contêm uma cadeia de caracteres de nome de usuário e uma senha de texto não criptografado com suporte do Serviço Web de Registro de Certificado para autenticar o chamador. Como uma conexão de serviço de registro sempre usa o protocolo SSL ( Secure Sockets Layer ), a senha é criptografada quando enviada pela transmissão.

[in] strCredential

Uma cadeia de caracteres que contém a credencial.

[in] strPassword

Uma cadeia de caracteres que contém a senha.

Retornar valor

Código de retorno Descrição
E_INVALIDARG
O parâmetro AuthType deve ser X509AuthKerberos.

Comentários

O método SetCredential deve ser chamado antes de chamar o método ICertRequest2::Submit .

Os argumentos strCredential e strPassword mudam dependendo do valor especificado no parâmetro AuthType , conforme mostrado na tabela a seguir.

Parâmetro AuthType Parâmetro strCredential Parâmetro strPassword
X509AuthAnonymous NULL NULL
X509AuthCertificate Um hash SHA-1 de 20 bytes (impressão digital) do certificado NULL
X509AuthKerberos NULL NULL
X509AuthUsername Um nome de usuário de texto não criptografado reconhecido pelo Serviço Web de Registro de Certificado Uma senha de texto sem formatação associada ao nome de usuário

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certcli.h (inclua Certsrv.h)
Biblioteca Certidl.lib
DLL Certcli.dll

Confira também

CCertRequest

ICertRequest3