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


Метод ICertProperty::SetValueOnCertificate (certenroll.h)

Метод SetValueOnCertificate связывает значение свойства с существующим сертификатом.

Синтаксис

HRESULT SetValueOnCertificate(
  [in] VARIANT_BOOL MachineContext,
  [in] EncodingType Encoding,
  [in] BSTR         strCertificate
);

Параметры

[in] MachineContext

Значение VARIANT_BOOL , указывающее, предназначено ли хранилище сертификатов для локального компьютера или для текущего пользователя. Укажите VARIANT_TRUE для компьютера и VARIANT_FALSE для пользователя.

[in] Encoding

Значение перечисления EncodingType , указывающее тип кодировки Юникода, применяемой к строке сертификата, определяемой параметром strCertificate .

[in] strCertificate

Переменная BSTR , содержащая сертификат в кодировке DER.

Начиная с Windows 7 и Windows Server 2008 R2, вы можете указать печать или серийный номер сертификата, а не закодированный сертификат. Это приводит к тому, что функция выполняет поиск соответствующего сертификата в соответствующих локальных хранилищах. Помните на следующие моменты.

  • BSTR должно быть четным числом шестнадцатеричных цифр.
  • Пробелы между шестнадцатеричными парами игнорируются.
  • Параметр Encoding должен иметь значение XCN_CRYPT_STRING_HEXRAW.
  • Параметр MachineContext определяет, выполняется ли поиск в хранилищах пользователя или компьютера.
  • Если требуется закрытый ключ, выполняется поиск только в личных хранилищах и хранилищах запросов.
  • Если закрытый ключ не требуется, выполняется поиск в корневом и промежуточном хранилищах ЦС.

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

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

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

Возвращаемый код/значение Описание
CRYPT_E_NOT_FOUND
Не удалось найти сертификат.
CRYPT_E_UNEXPECTED_MSG_TYPE
Сертификат найден, но не удалось загрузить закрытый ключ.

Комментарии

Вызовите метод InitializeDecode или InitializeFromCertificate , чтобы создать значение свойства. Перед вызовом любого из методов необходимо сначала задать свойство PropertyId , чтобы указать, какое значение свойства следует инициализировать.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header certenroll.h
DLL CertEnroll.dll

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

ICertProperties

ICertProperty