Método ICertAdmin2::P ublishCRLs (certadm.h)
El método PublishCRLs publica listas de revocación de certificados (CRL) para una entidad de certificación (CA). Este método se definió por primera vez en la interfaz ICertAdmin .
El método PublishCRLs publica una CRL basada en el certificado actual de la ENTIDAD de certificación, así como las CRL basadas en los certificados de CA que se han renovado y aún no han expirado.
Sintaxis
HRESULT PublishCRLs(
[in] const BSTR strConfig,
[in] DATE Date,
[in] LONG CRLFlags
);
Parámetros
[in] strConfig
Representa una cadena de configuración válida para la ENTIDAD de certificación 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.
[in] Date
Especifica el siguiente valor de actualización de la CRL en la hora GMT. Si Date es distinto de cero, el siguiente valor de actualización para la CRL es Date, sujeto a los límites de redondeo o límite máximo aplicados por Servicios de certificados. Si Date es cero, el siguiente valor de actualización de la CRL se calcula a partir del período de publicación de CRL predeterminado.
[in] CRLFlags
Valor que especifica las opciones de publicación de CRL. Este valor puede ser una combinación bit a bit de las marcas siguientes.
Valor devuelto
None
Observaciones
Para determinar si una ENTIDAD de certificación ha publicado correctamente crLs base y delta, llame a ICertAdmin2::GetCAProperty con el CR_PROP_BASECRLPUBLISHSTATUS y CR_PROP_DELTACRLPUBLISHSTATUS identificadores de propiedad, respectivamente.
Ejemplos
En el ejemplo siguiente se muestran las CRL de publicación.
DATE ExpDate; // CRL expiration date.
SYSTEMTIME st;
BSTR bstrCA = NULL;
// Set the CRL expiration date to noon, July 1, 2001.
// Zero out values first (avoids setting minutes,
// seconds, and so on).
memset(&st, 0, sizeof(SYSTEMTIME));
st.wYear = 2001;
st.wMonth = 7; // July
st.wDay = 1; // first day of month
st.wHour = 12; // noon
// Place the date in required format.
if (!SystemTimeToVariantTime(&st, &ExpDate))
{
printf("Unable to convert time\n");
goto error;
}
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Memory allocation failed\n");
goto error;
}
// Publish the CRL.
// pCertAdmin is a previously instantiated ICertAdmin object.
hr = pCertAdmin2->PublishCRLs(bstrCA,
ExpDate,
CA_CRL_BASE);
if (FAILED(hr))
{
printf("Failed PublishCRLs [%x]\n", hr);
goto error;
}
else
printf("PublishCRLs succeeded\n");
// Done.
error:
// Free resources.
if (bstrCA)
SysFreeString(bstrCA);
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 |