Método ICertAdmin::SetRequestAttributes (certadm.h)

El método SetRequestAttributes establece atributos en la solicitud de certificado pendiente especificada. Este método se definió por primera vez en la interfaz ICertAdmin .

Para que este método se realice correctamente, la solicitud de certificado debe estar pendiente.

Sintaxis

HRESULT SetRequestAttributes(
  [in] const BSTR strConfig,
  [in] LONG       RequestId,
  [in] const BSTR strAttributes
);

Parámetros

[in] strConfig

Representa una cadena de configuración válida para el servidor de entidad de certificación (CA) con el formato COMPUTERNAME\CANAME, donde COMPUTERNAME es el nombre de red del servidor de Servicios de certificados y CANAME es el nombre común de la entidad de certificación, tal como se especifica durante la configuración de Servicios de certificados. Para obtener información sobre el nombre de la cadena de configuración, vea ICertConfig.

ImportanteSetRequestAttributes no borra la caché interna cuando se cambia la cadena de configuración. Al cambiar la cadena de configuración de la ENTIDAD de certificación, debe crear una instancia de un nuevo objeto ICertAdmin y llamar a este método de nuevo con la nueva cadena de configuración.
 

[in] RequestId

Especifica el identificador de la solicitud que recibe los atributos.

[in] strAttributes

Especifica los datos de atributo. Cada atributo es un par de cadenas de nombre-valor. El carácter de dos puntos separa el nombre y el valor, y un carácter de nueva línea separa varios pares nombre-valor, por ejemplo:

C++ AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2
VB AttributeName1:AttributeValue1 & vbNewLine & AttributeName2:AttributeValue2
No hay ningún límite establecido en el número de atributos de solicitud que se pueden agregar a una solicitud.

Cuando Servicios de certificados analiza los nombres de atributo, omite espacios, guiones (signos menos) y mayúsculas de minúsculas. Por ejemplo, AttributeName1, Attribute Name1 y Attribute-name1 son equivalentes. En el caso de los valores de atributo, Certificate Services omite el espacio en blanco inicial y final.

Nota La longitud máxima de un nombre de atributo es de 127 caracteres no NULL . La longitud máxima de un valor de atributo es de 4096 caracteres no NULL .
 

Valor devuelto

VB

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.

Comentarios

Los atributos agregados o actualizados mediante una llamada a SetRequestAttributes no modifican la cadena de atributo inicial sin revisar asociada a la solicitud de certificado. La cadena de atributo no preparada de la solicitud de certificado es inalterable después de solicitar el certificado (el método ICertRequest::Submit permite especificar los atributos en el momento en que se solicita el certificado).

Puede usar el complemento MMC de la entidad de certificación para mostrar la cadena de atributo de solicitud no preparada inicial.

Al ver los atributos analizados, también verá los cambios debido a llamadas a SetRequestAttributes.

Para ver los atributos analizados

  1. Abra el complemento MMC de entidad de certificación.
  2. Abra la carpeta Solicitudes pendientes .
  3. Haga clic con el botón derecho en una solicitud, seleccione Todas las tareas y, a continuación, haga clic en Ver atributos o extensiones.
Para enumerar o ver todos los atributos analizados, incluidos los agregados mediante SetRequestAttributes, también puede usar la interfaz IEnumCERTVIEWATTRIBUTE .

Las tareas de administración usan DCOM. El código que llama a este método de interfaz tal como se define en una versión anterior de Certadm.h se ejecutará en servidores basados en Windows siempre que el cliente y el servidor ejecuten el mismo sistema operativo Windows.

Ejemplos

    BSTR bstrAttribs = NULL;
    BSTR bstrCA = NULL;
    long nReqID;  // request ID

    //  Specify the attributes.
    //  For example, "AttName1:AttValue1\nAttName2:AttValue2". 
    bstrAttribs = SysAllocString(L"<ATTRIBUTESHERE>");
    if (NULL == bstrAttribs)
    {
        printf("Memory allocation failed for bstrAttribs.\n");
        goto error;
    }
    
    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    if (NULL == bstrCA)
    {
        printf("Memory allocation failed for bstrCA.\n");
        goto error;
    }

    //  Request ID to receive the attributes.
    nReqID = <REQUESTIDHERE>;

    //  Add these attributes to the certificate.
    //  pCertAdmin is a previously instantiated
    //  ICertAdmin object pointer. 
    hr = pCertAdmin->SetRequestAttributes( bstrCA,
                                           nReqID,
                                           bstrAttribs );
    if (FAILED(hr))
        printf("Failed SetRequestAttributes [%x]\n", hr);
    else
        printf("SetRequestAttributes succeeded\n");

    //  Done processing.

error:

    if (bstrAttribs)
        SysFreeString(bstrAttribs);
    if (bstrCA)
        SysFreeString(bstrCA);
    //  Free other resources.

Requisitos

Requisito Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certadm.h (incluya Certsrv.h)
Library Certidl.lib
Archivo DLL Certadm.dll

Consulte también

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig

IEnumCERTVIEWATTRIBUTE