Метод ICertAdmin::IsValidCertificate (certadm.h)
Метод IsValidCertificate проверяет сертификат по ключу центра сертификации (ЦС) и проверяет, что сертификат не был отозван. Этот метод был впервые определен в интерфейсе ICertAdmin .
Синтаксис
HRESULT IsValidCertificate(
[in] const BSTR strConfig,
[in] const BSTR strSerialNumber,
[out, retval] LONG *pDisposition
);
Параметры
[in] strConfig
Представляет допустимую строку конфигурации для ЦС в формате COMPUTERNAME\CANAME, где COMPUTERNAME — сетевое имя сервера служб сертификации, а CANAME — общее имя центра сертификации, указанное во время настройки служб сертификации. Сведения об имени строки конфигурации см. в разделе ICertConfig.
[in] strSerialNumber
Указывает серийный номер сертификата для проверки. Строка должна указывать серийный номер в виде четного числа шестнадцатеричных цифр. При необходимости можно задать нулевые префиксы к числу, чтобы получить четное число цифр. Можно использовать не более одного начального нуля.
[out, retval] pDisposition
Указатель на объект LONG , получающий значение ликвидации.
Возвращаемое значение
C++
Если метод выполнен успешно и параметру pDisposition присвоено одно из следующих значений, метод возвращает S_OK.Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
VB
Возвращаемое значение указывает ликвидацию сертификата. Это значение является одним из следующих значений. (Эти значения определены в Certadm.h.)Код возврата | Описание |
---|---|
|
Вызов не был завершен. |
|
Вызов не выполнен. |
|
Сертификат был отозван. |
|
Сертификат по-прежнему действителен. |
|
Сертификат никогда не выдавался. |
|
Сертификат находится в состоянии ожидания. |
Комментарии
Этот метод определяет только, был ли сертификат выдан и не отозван в настоящее время; он не проверка, что текущее время и дата находятся в пределах периода, в течение которого сертификат действителен (свойства сертификата NotBefore и NotAfter). Приложение, использующее этот метод, также отвечает за проверку срока действия сертификата.
Задачи администрирования используют DCOM. Код, вызывающий этот метод интерфейса, как определено в более ранней версии Certadm.h, будет выполняться на серверах Windows, если клиент и сервер работают под одной операционной системой Windows.
Примеры
BSTR bstrCA = NULL; // Machine\CAName
BSTR bstrSerial = NULL; // Contains the certificate
// serial number
long nDisp; // Contains the certificate
// disposition
HRESULT hr;
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
bstrSerial = SysAllocString(L"<SERIALNUMBERHERE>");
if (NULL == bstrCA || NULL == bstrSerial)
{
printf("Memory allocation failed\n");
goto error;
}
// Determine whether the certificate is valid.
// pCertAdmin is a previously instantiated ICertAdmin
// object pointer.
hr = pCertAdmin->IsValidCertificate(bstrCA, bstrSerial, &nDisp);
if (FAILED(hr))
{
printf("Failed IsValidCertificate [%x]\n", hr);
goto error;
}
// Use nDisp as needed.
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrSerial)
SysFreeString(bstrSerial);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certadm.h (включая Certsrv.h) |
Библиотека | Certidl.lib |
DLL | Certadm.dll |