Método ICEnroll4::createRequest (xenroll.h)

[Esse método não está mais disponível para uso a partir do Windows Server 2008 e do Windows Vista.]

O método createRequest cria uma solicitação de certificado de formato PKCS #10, PKCS #7 ou gerenciamento completo de certificados por CMS (CMC) e o armazena em uma cadeia de caracteres. Esse método foi definido pela primeira vez na interface ICEnroll4 .

Sintaxe

HRESULT createRequest(
  [in]  LONG Flags,
  [in]  BSTR strDNName,
  [in]  BSTR Usage,
  [out] BSTR *pstrRequest
);

Parâmetros

[in] Flags

Um valor que especifica o tipo de solicitação de certificado a ser criada. Esse pode ser um dos valores a seguir.

Valor Significado
XECR_CMC
CMC completo
XECR_PKCS10_V1_5
PKCS 10
XECR_PKCS10_V2_0
PKCS 10 versão 2
XECR_PKCS7
PKCS 7

[in] strDNName

Esse parâmetro pode ser NULL; caso contrário, esse parâmetro especifica o DN (nome diferenciado) da entidade para a qual a solicitação está sendo feita. O nome DN deve seguir a convenção de nomenclatura X.500 , por exemplo, "CN=User, O=Microsoft". Se um prefixo de duas letras não existir, um OID poderá ser fornecido.

[in] Usage

Um OID ( identificador de objeto ) que descreve a finalidade do certificado que está sendo gerado, por exemplo, o certificado Authenticode individual ou comercial ou a autenticação do cliente. Você também pode especificar vários OIDs separados por uma vírgula.

[out] pstrRequest

Um ponteiro para um BSTR (formato BASE64_HEADER) que recebe a solicitação. Quando terminar de usar o BSTR, libere-o chamando a função SysFreeString .

Retornar valor

C++

Se o método for bem-sucedido, o método retornará S_OK.

Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

VB

O valor retornado é um String (formato BASE64_HEADER) que contém a solicitação.

Comentários

Quando esse método é chamado do script, o método exibe uma interface do usuário que pergunta se o usuário permitirá a criação de uma solicitação de certificado. Se um arquivo .pvk ou .spc tiver sido especificado, o método exibirá uma interface do usuário que pergunta se o usuário permitirá uma operação de gravação no sistema de arquivos.

Exemplos

BSTR bstrDN = NULL;
BSTR bstrReq = NULL;
ICEnroll4 * pEnroll4 = NULL;
HRESULT hr;

hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
if (FAILED(hr))
{
    printf("Failed CoInitializeEx - %x\n", hr);
    goto error;
}

hr = CoCreateInstance( __uuidof(CEnroll),
                       NULL,
                       CLSCTX_INPROC_SERVER,
                       __uuidof(ICEnroll4),
                       (void **)&pEnroll4);
if (FAILED(hr))
{
    printf("Failed CoCreateInstance - pEnroll4 [%x]\n", hr);
    goto error;
}

// generate the DN for the cert request
bstrDN = SysAllocString( TEXT("CN=Your Name")   // common name
                         TEXT(",OU=Your Unit")  // org unit
                         TEXT(",O=Your Org")    // organization
                         TEXT(",L=Your City")   // locality
                         TEXT(",S=Your State")  // state
                         TEXT(",C=Your Country") );  // country/region

// create the CMC request
hr = pEnroll4->createRequest( XECR_CMC,
                              bstrDN,
                              NULL,
                              &bstrReq );
if (FAILED(hr))
{
        printf("Failed createRequest - pEnroll4 [%x]\n", hr);
        goto error;
}
else
    // do something with the CMC (bstrReq);

error:

//clean up resources, and so on
if ( bstrDN )
    SysFreeString( bstrDN );
if ( bstrReq )
    SysFreeString( bstrReq );
if ( pEnroll4 )
    pEnroll4->Release();

CoUninitialize();

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho xenroll.h
Biblioteca Uuid.lib
DLL Xenroll.dll