Метод ICertAdmin2::P ublishCRLs (certadm.h)
Метод PublishCRLs публикует списки отзыва сертификатов (CRL) для центра сертификации (ЦС). Этот метод был впервые определен в интерфейсе ICertAdmin .
Метод PublishCRLs публикует список отзыва сертификатов на основе текущего сертификата ЦС, а также список отзыва сертификатов на основе всех сертификатов ЦС, которые были обновлены и еще не истекли.
Синтаксис
HRESULT PublishCRLs(
[in] const BSTR strConfig,
[in] DATE Date,
[in] LONG CRLFlags
);
Параметры
[in] strConfig
Представляет допустимую строку конфигурации для ЦС в формате COMPUTERNAME\CANAME, где COMPUTERNAME — сетевое имя сервера служб сертификации, а CANAME — общее имя центра сертификации, указанное во время установки служб сертификации. Сведения об имени строки конфигурации см. в разделе ICertConfig.
[in] Date
Указывает следующее значение обновления списка отзыва сертификатов по времени GMT. Если аргумент Date не имеет нулевого значения, то следующим значением списка отзыва сертификатов является Date, при условии округления или ограничения верхнего предела, применяемого службами сертификатов. Если дата равна нулю, следующее значение обновления списка отзыва сертификатов вычисляется из периода публикации списка отзыва сертификатов по умолчанию.
[in] CRLFlags
Значение, указывающее параметры публикации списка отзыва сертификатов. Это значение может быть побитовой комбинацией следующих флагов.
Возвращаемое значение
None
Remarks
Чтобы определить, успешно ли ЦС опубликовал базовые и разностные списки отзыва сертификатов, вызовите ICertAdmin2::GetCAProperty с идентификаторами свойств CR_PROP_BASECRLPUBLISHSTATUS и CR_PROP_DELTACRLPUBLISHSTATUS соответственно.
Примеры
В следующем примере показаны списки отзыва сертификатов публикации.
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);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certadm.h (включая Certsrv.h) |
Библиотека | Certidl.lib |
DLL | Certadm.dll |