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


Метод ICertServerPolicy::SetCertificateExtension (certif.h)

Метод SetCertificateExtension добавляет в сертификат новое расширение.

Синтаксис

HRESULT SetCertificateExtension(
  [in] const BSTR    strExtensionName,
  [in] LONG          Type,
  [in] LONG          ExtFlags,
  [in] const VARIANT *pvarValue
);

Параметры

[in] strExtensionName

Указывает идентификатор объекта (OID) для задаемого расширения. Длина строки не должна превышать 31 символ.

[in] Type

Указывает тип устанавливаемого расширения. Параметр Type должен соответствовать типу данных pvarValue , заданному в поле vt структуры VARIANT . Параметру Type можно задать один из следующих типов.

Значение Значение
PROPTYPE_LONG
Подписанные длинные данные.
PROPTYPE_DATE
Дата и время.
PROPTYPE_BINARY
Значение расширения задается как есть и при необходимости предполагается, что оно закодировано в формате ASN.1.
PROPTYPE_STRING
Значение расширения будет закодировано как строка IA5 ASN.1, прежде чем оно будет помещено в новый сертификат.
Примечание Следует использовать PROPTYPE_STRING для значения расширения, состоящего из одного URL-адреса, только если вы хотите, чтобы URL-адрес автоматически кодировались как строка IA5. В противном случае закодируйте URL-адрес как строку IA5 самостоятельно и передайте закодированное значение как PROPTYPE_BINARY.
 

[in] ExtFlags

Задает флаги для устанавливаемого расширения. Используйте нулевое значение, если флаг не устанавливается, или используйте одно из следующих значений флага. Эти флаги можно объединить с помощью оператора OR , а также с помощью оператора OR с флагами частных расширений политики (высокие 8 бит поля EXTENSION_POLICY_MASK).

Примечание Если для ExtFlags задано значение EXTENSION_DISABLE_FLAG, расширение будет отключено в журнале сервера и не будет добавлено в сертификат.
 
Значение Значение
EXTENSION_CRITICAL_FLAG
Это критическое расширение.
EXTENSION_DISABLE_FLAG
Расширение не будет использоваться.

[in] pvarValue

Указывает значение, связанное с расширением. Обратите внимание, что тип variant значения должен соответствовать параметру Type , как показано в следующей таблице.

Значение Значение
PROPTYPE_LONG
VT_I4
PROPTYPE_DATE
VT_DATE
PROPTYPE_BINARY
VT_BSTR
PROPTYPE_STRING
VT_BSTR

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

VB

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

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

Комментарии

Используйте расширения для включения в сертификат дополнительных сведений, таких как дополнительная тема или сведения об использовании. Дополнительные сведения см. в разделе Обработчики расширений.

Вызовите метод SetCertificateExtension из реализации метода ICertPolicy2::VerifyRequest . Перед вызовом метода SetCertificateExtension необходимо вызвать метод ICertServerPolicy::SetContext.

Требования

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

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

ICertServerPolicy

ICertServerPolicy::SetContext