Поделиться через


Метод ICertAdmin::P ublishCRL (certadm.h)

Метод PublishCRL отправляет запрос в центр сертификации служб сертификации (ЦС) для публикации нового списка отзыва сертификатов (CRL). Этот метод впервые появился в интерфейсе ICertAdmin .

Синтаксис

HRESULT PublishCRL(
  [in] const BSTR strConfig,
  [in] DATE       Date
);

Параметры

[in] strConfig

Представляет допустимую строку конфигурации для ЦС в формате COMPUTERNAME\CANAME, где COMPUTERNAME — сетевое имя сервера служб сертификации, а CANAME — общее имя центра сертификации, указанное при настройке служб сертификации. Дополнительные сведения об имени строки конфигурации см. в разделе ICertConfig.

Важно!PublishCRL не очищает внутренний кэш при изменении строки конфигурации. При изменении строки конфигурации для ЦС необходимо создать экземпляр нового объекта ICertAdmin и снова вызвать этот метод с новой строкой конфигурации.

 

[in] Date

Указывает следующее значение обновления списка отзыва сертификатов в формате универсального координированного времени (среднее по Гринвичу). Если значение Date не равно нулю, то следующим значением обновления для списка отзыва сертификатов является Дата, при условии округления или ограничения верхнего предела, применяемые службами сертификатов. Если date равно нулю, следующее значение обновления списка отзыва сертификатов вычисляется из периода публикации списка отзыва сертификатов по умолчанию.

Возвращаемое значение

VB

Если метод завершается успешно, метод возвращает S_OK.

Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Комментарии

В задачах администрирования используется DCOM. Код, вызывающий этот метод интерфейса, как определено в более ранней версии Certadm.h, будет выполняться на серверах под управлением Windows, если клиент и сервер работают под одной операционной системой Windows.

Примеры

В следующем примере показана публикация списка отзыва сертификатов.

    DATE ExpDate;  // CRL expiration date
    SYSTEMTIME st;
    BSTR bstrCA = NULL;

    //  Set the CRL Expiration Date to Noon on Jan. 1, 2005 GMT.
    //  Zero out values first 
	//  (avoids setting minutes, seconds, and so on).
    memset(&st, 0, sizeof(SYSTEMTIME));
    st.wYear = 2005;
    st.wMonth = 1;     // Jan
    st.wDay = 1;       // 1st 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 = pCertAdmin->PublishCRL(bstrCA, ExpDate);
    if (FAILED(hr))
    {
        printf("Failed PublishCRL [%x]\n", hr);
        goto error;
    }
    else
        printf("PublishCRL succeeded\n");

Требования

Требование Значение
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header certadm.h (включая Certsrv.h)
Библиотека Certidl.lib
DLL Certadm.dll

См. также раздел

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig