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

[Este método ya no está disponible para su uso a partir de Windows Server 2008 y Windows Vista.]

El método createRequest crea una solicitud de certificado de formato PKCS #10, PKCS #7 o administración completa de certificados a través de CMS (CMC) y la almacena en una cadena. Este método se definió por primera vez en la interfaz ICEnroll4 .

Sintaxis

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

Parámetros

[in] Flags

Valor que especifica el tipo de solicitud de certificado que se va a crear. Puede ser uno de los valores siguientes.

Valor Significado
XECR_CMC
CMC completo
XECR_PKCS10_V1_5
PKCS 10
XECR_PKCS10_V2_0
PKCS 10 versión 2
XECR_PKCS7
PKCS 7

[in] strDNName

Este parámetro puede ser NULL; de lo contrario, este parámetro especifica el nombre distintivo (DN) de la entidad para la que se realiza la solicitud. El nombre de DN debe seguir la convención de nomenclatura X.500 , por ejemplo"CN=User, O=Microsoft". Si no existe un prefijo de dos letras, se puede proporcionar un OID en su lugar.

[in] Usage

Identificador de objeto (OID) que describe el propósito del certificado que se va a generar, por ejemplo, certificado Authenticode individual o comercial, o autenticación de cliente. También puede especificar varios OID separados por una coma.

[out] pstrRequest

Puntero a un BSTR (formato BASE64_HEADER) que recibe la solicitud. Cuando haya terminado de usar el BSTR, áurelo llamando a la función SysFreeString .

Valor devuelto

C++

Si el método se realiza correctamente, el método devuelve S_OK.

Si se produce un error en el método, devuelve un valor HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

VB

El valor devuelto es una cadena (formato BASE64_HEADER) que contiene la solicitud.

Comentarios

Cuando se llama a este método desde el script, el método muestra una interfaz de usuario que pregunta si el usuario permitirá la creación de una solicitud de certificado. Si se especificó un archivo .pvk o .spc, el método muestra una interfaz de usuario que pregunta si el usuario permitirá una operación de escritura en el sistema de archivos.

Ejemplos

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 Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado xenroll.h
Library Uuid.lib
Archivo DLL Xenroll.dll