Metodo ICertAdmin2::P ublishCRLs (certadm.h)
Il metodo PublishCRLs pubblica elenchi di revoche di certificati (CRL) per un'autorità di certificazione (CA). Questo metodo è stato definito per la prima volta nell'interfaccia ICertAdmin .
Il metodo PublishCRLs pubblica un CRL in base al certificato corrente della CA, nonché ai CRL basati su tutti i certificati CA rinnovati e non ancora scaduti.
Sintassi
HRESULT PublishCRLs(
[in] const BSTR strConfig,
[in] DATE Date,
[in] LONG CRLFlags
);
Parametri
[in] strConfig
Rappresenta una stringa di configurazione valida per la CA nel formato COMPUTERNAME\CANAME, dove COMPUTERNAME è il nome di rete del server servizi certificati e CANAME è il nome comune dell'autorità di certificazione, come immesso durante l'installazione di Servizi certificati. Per informazioni sul nome della stringa di configurazione, vedere ICertConfig.
[in] Date
Specifica il valore di aggiornamento successivo dell'elenco di revoche di certificati nell'ora GMT. Se Date è diverso da zero, il valore di aggiornamento successivo per il CRL è Date, soggetto ai limiti di arrotondamento o limite massimo applicati da Servizi certificati. Se Date è zero, il valore di aggiornamento successivo di CRL viene calcolato dal periodo di pubblicazione CRL predefinito.
[in] CRLFlags
Valore che specifica le opzioni di pubblicazione CRL. Questo valore può essere una combinazione bit per bit dei flag seguenti.
Valore restituito
nessuno
Osservazioni
Per determinare se una CA ha pubblicato correttamente cRL di base e delta, chiamare rispettivamente ICertAdmin2::GetCAProperty con gli identificatori di proprietà CR_PROP_BASECRLPUBLISHSTATUS e CR_PROP_DELTACRLPUBLISHSTATUS.
Esempio
L'esempio seguente mostra la pubblicazione di CRL.
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);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Nessuno supportato |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | certadm.h (include Certsrv.h) |
Libreria | Certidl.lib |
DLL | Certadm.dll |