Метод ICertServerExit::GetCertificateProperty (certif.h)
Метод GetCertificateProperty возвращает именованное свойство из сертификата.
Синтаксис
HRESULT GetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[out] VARIANT *pvarPropertyValue
);
Параметры
[in] strPropertyName
Указывает извлекаемое именованное свойство. Существует набор стандартных свойств сертификата, называемых свойствами имен, которые являются допустимыми и могут быть получены путем вызова этого метода. Сведения об этих свойствах см. в разделе Свойства имени. Другие свойства, которые можно получить, включают свойства сертификата.
Следующие свойства являются уникальными для сертификатов и могут быть прочитаны командой GetCertificateProperty.
Значение | Значение |
---|---|
|
Дата начала действия сертификата |
|
Дата окончания срока действия сертификата |
|
Идентификатор объекта алгоритма ключа субъекта (OID) |
|
Необработанные байты сертификата |
|
Ключ темы |
|
Параметры алгоритма ключа субъекта |
|
Внутренний идентификатор запроса |
|
серийный номер сертификата; |
Свойства DistinguishedName, RawName и SerialNumber сертификата доступны getCertificateProperty только после того, как модуль политики завершит обработку запроса и сертификат выдан.
Следующие свойства применяются к центру сертификации. Для чтения любого из этих свойств контекст должен быть равен нулю. Контексту присваивается нулевое значение при первоначальном создании объекта ICertServerExit . Ему также можно задать нулевое значение, вызвав метод SetContext .
Значение | Значение |
---|---|
|
Тип центра сертификации. Это может быть одно из следующих значений (определенных в Certsrv.h): ENUM_ENTERPRISE_ROOTCA ENUM_ENTERPRISE_SUBCA ENUM_STANDALONE_ROOTCA ENUM_STANDALONE_SUBCA |
|
Количество сертификатов ЦС. Это значение будет равно 1 с лишним числом обновлений ЦС. Сведения о продлении см. в разделе Обновление центра сертификации. |
|
Состояние сертификата ЦС. Может иметь одно из следующих значений:
|
|
Суффикс сертификата ЦС. Суффикс — это пустая строка для сертификатов ЦС с индексом, равным нулю; В противном случае суффикс (в форме "(nn)", где nn — индекс сертификата) применяется ко всем URL-адресам, указывающим на сертификаты ЦС, хранящиеся в файлах или объектах службы каталогов. Для URL-адресов, отличных от LDAP , суффикс обычно отображается перед текстом .crt. Для URL-адресов LDAP суффикс обычно добавляется к первому "CN=" в полном различаемом имени.
Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации. |
|
Индекс списка отзыва сертификатов (CRL). Добавление индекса сертификата к этому имени свойства позволяет получить индекс списка отзыва сертификатов. Индекс списка отзыва сертификатов не обязательно соответствует индексу сертификата. Дополнительные сведения см. в разделе Сертификация.
Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации. |
|
Состояние списка отзыва сертификатов. Может иметь одно из следующих значений:
|
|
Суффикс для списка отзыва сертификатов ЦС. Суффикс — это пустая строка для списков отзыва сертификатов с индексом, равным нулю; В противном случае суффикс (в форме "(nn)", где nn — индекс списка отзыва сертификатов) применяется ко всем URL-адресам, указывающим на списки отзыва сертификатов, хранящиеся в файлах или объектах службы каталогов. Для URL-адресов, отличных от LDAP, суффикс обычно отображается перед текстом crl. Для URL-адресов LDAP суффикс обычно добавляется к первому "CN=" в полном различаемом имени.
Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации. |
|
Указывает, использует ли ЦС службу каталогов. Это может быть одно из следующих значений:
|
|
DNS-имя сервера, на котором размещен ЦС. |
|
Расположение реестра, доступное для использования модулем. |
|
Сертификат ЦС.
Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации. |
|
Список отзыва сертификатов ЦС (CRL).
Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации. |
|
Указывает, авторизован ли инициатор запроса на запрос сертификата. Это может быть одно из следующих значений:
|
|
Санитизированное имя для ЦС. Сведения о санированных именах ЦС см. в разделе ICertConfig::GetConfig. |
|
Санитизированное имя ЦС, сокращенное и содержащее хэш-значение для обеспечения уникальности. |
[in] PropertyType
Указывает тип свойства. Тип может быть одним из следующих.
Значение | Значение |
---|---|
|
Подписанные длинные данные |
|
Дата и время |
|
Двоичные данные |
|
Строковые данные в Юникоде |
[out] pvarPropertyValue
Указатель на VARIANT , который будет содержать значение свойства. Возвращаемое значение кодируется как BSTR. Используйте функцию SysStringByteLen , чтобы получить длину BSTR. Двоичный BLOB хранится в виде Distinguished Encoding Rules закодированного сертификата X.509.
Возвращаемое значение
C++
Если метод выполнен успешно, метод возвращает S_OK.Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
VB
Возвращаемое значение — это запрошенное значение свойства.Комментарии
Перед использованием этого метода необходимо вызвать ICertServerExit::SetContext .
Примеры
BSTR bstrPropName = NULL;
VARIANT varProp;
VariantInit(&varProp);
// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");
// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
PROPTYPE_LONG,
&varProp );
if (FAILED(hr))
{
printf("Failed GetCertificateProperty [%x]\n", hr);
goto error;
}
else
{
// Successfully retrieved property; use varProp as needed.
// ...
}
// Done processing.
if (NULL != bstrPropName)
SysFreeString(bstrPropName);
VariantClear(&varProp);
Требования
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | certif.h (включая Certsrv.h) |
Библиотека | Certidl.lib |
DLL | Certcli.dll |