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


Метод IX509Enrollment::InstallResponse (certenroll.h)

Метод InstallResponse устанавливает цепочку сертификатов на компьютере конечной сущности. Массив байтов, содержащий ответ, кодируется с помощью различающихся правил кодирования (DER), определенных стандартом абстрактного синтаксиса нотации one (ASN.1). Необходимо указать массив байтов в кодировке DER в строке, которая является чистой двоичной последовательностью или закодирована в Юникоде. Этот метод включен в Интернете.

Синтаксис

HRESULT InstallResponse(
  [in]           InstallResponseRestrictionFlags Restrictions,
  [in]           BSTR                            strResponse,
  [in]           EncodingType                    Encoding,
  [in, optional] BSTR                            strPassword
);

Параметры

[in] Restrictions

Значение перечисления InstallResponseRestrictionFlags , указывающее тип сертификатов, которые можно установить. Это может быть одно или несколько следующих значений.

Ценность Meaning
AllowNone
Не устанавливайте ненадежные сертификаты или сертификаты, для которых нет соответствующего запроса.
AllowNoOutstandingRequest
Создайте закрытый ключ из ответа сертификата, а не из фиктивного сертификата. Это делает фиктивный сертификат необязательным. Если это значение не задано, фиктивный сертификат должен существовать, а закрытый ключ извлекается из него.
AllowUntrustedCertificate
Установите ненадежные конечные сущности и сертификаты центра сертификации . Сертификаты центра сертификации включают корневые и подчиненные сертификаты ЦС. Сертификаты конечных сущностей устанавливаются в личное хранилище, а сертификаты ЦС устанавливаются в хранилище центра сертификации.
AllowUntrustedRoot
Выполните то же действие, что и флаг AllowUntrustedCertificate , но и устанавливает сертификат, даже если цепочка сертификатов не может быть создана, так как корневой каталог не является доверенным.
Заметка В Windows Vista поведение этого флага совпадает с тем, что определено для флага AllowUntrustedCertificate . Начиная с Windows Vista с пакетом обновления 1 (SP1), вы можете установить сертификат, который объединяется с ненадежным корнем.
 

[in] strResponse

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

[in] Encoding

Значение перечисления EncodeType , указывающее тип кодировки, примененный к строке, содержащей ответ в кодировке DER.

[in, optional] strPassword

Необязательный пароль для установки сертификата. Это может быть NULL или пустая строка, указывающая, что пароль не используется. Если есть пароль, снимите его из памяти после завершения использования, вызвав функцию SecureZeroMemory . Дополнительные сведения о защите пароля см. в разделе "Обработка паролей".

Начиная с Windows 8 и Windows Server 2012, пароль NULL или пустой пароль может означать, что пакет PFX был создан в функции PFXExportCertStoreEx с помощью флага PKCS12_PROTECT_TO_DOMAIN_SIDS . Если да, PFX был зашифрован в группе Active Directory. Дополнительные сведения см. в разделе PFXExportCertStoreEx и PFXImportCertStore.

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

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

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

Код возврата Description
E_ACCESSDENIED
Этот метод был вызван из Интернета, и в параметре Restrictions был указан параметр AllowNoOutstandingRequest или AllowUntrustedCertificate.
HRESULT_FROM_WIN32(ERROR_ARITHMETIC_OVERFLOW
Длина строки, содержащей пароль, превышает 64 килобайта.
OLE_E_BLANK
Объект регистрации не инициализирован.

Замечания

Метод InstallResponse :

  1. Извлекает фиктивный сертификат из внешнего хранилища.
  2. Извлекает сертификат, содержащийся в ответе, и устанавливает его на компьютере.
  3. Копирует свойства из фиктивного сертификата во внешнем хранилище в только что установленный сертификат в личном хранилище.

Перед вызовом метода InstallResponse необходимо инициализировать объект IX509Enrollment , вызвав один из следующих методов.

При вызове этого метода из Интернета можно указать только AllowNone или AllowUntrustedRoot в параметре Restrictions . Если указать AllowNoOutstandingRequest или AllowUntrustedCertificate, метод возвращает ошибку E_ACCESSDENIED .

Требования

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

См. также

IX509Enrollment