Condividi tramite


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.

ImportantePublishCRLs non cancella la cache interna quando viene modificata la stringa di configurazione. Quando si modifica la stringa di configurazione per la CA, è necessario creare un'istanza di un nuovo oggetto ICertAdmin e chiamare di nuovo questo metodo con la nuova stringa di configurazione.
 

[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 Significato
CA_CRL_BASE
Viene pubblicato un CRL di base oppure viene ripubblicato il CRL di base più recente se è impostato CA_CRL_REPUBLISH.
CA_CRL_DELTA
Viene pubblicato un CRL differenziale oppure viene ripubblicato il CRL delta più recente se è impostato CA_CRL_REPUBLISH. Si noti che se la CA non ha abilitato la pubblicazione delta CRL, l'uso di questo flag genererà un errore.
CA_CRL_REPUBLISH
Il CRL di base o delta più recente, come specificato da CA_CRL_BASE o CA_CRL_DELTA, viene ripubblicato. La CA non ripubblicerà un CRL in un punto di distribuzione CRL se il CRL nel punto di distribuzione è già il CRL più recente.

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