Метод IX509Enrollment::InstallResponse (certenroll.h)
Метод InstallResponse устанавливает цепочку сертификатов на компьютере конечной сущности. Массив байтов, содержащий ответ, кодируется с помощью Distinguished Encoding Rules (DER) в соответствии со стандартом Абстрактная синтаксическая нотация 1 (ASN.1). Необходимо указать массив байтов в кодировке DER в строке, которая является чистой двоичной последовательностью или кодировкой Юникода. Этот метод поддерживается через Интернет.
Синтаксис
HRESULT InstallResponse(
[in] InstallResponseRestrictionFlags Restrictions,
[in] BSTR strResponse,
[in] EncodingType Encoding,
[in, optional] BSTR strPassword
);
Параметры
[in] Restrictions
Значение перечисления InstallResponseRestrictionFlags , указывающее тип сертификатов, которые можно установить. Это может быть одно или несколько из следующих значений.
Значение | Значение |
---|---|
|
Не устанавливайте недоверенные сертификаты или сертификаты, для которых нет соответствующего запроса. |
|
Создайте закрытый ключ из ответа сертификата, а не из фиктивного сертификата. Это делает фиктивный сертификат необязательным. Если это значение не задано, фиктивный сертификат должен существовать и из него извлекается закрытый ключ. |
|
Установите недоверенные конечные сущности и сертификаты центра сертификации . Сертификаты центра сертификации включают корневые и подчиненные сертификаты ЦС. Сертификаты конечных сущностей устанавливаются в личное хранилище, а сертификаты ЦС — в хранилище центра сертификации. |
|
Выполняет то же действие, что и флаг AllowUntrustedCertificate , но также устанавливает сертификат, даже если невозможно создать цепочку сертификатов, так как корневой каталог не является доверенным. Примечание В Windows Vista поведение этого флага совпадает с поведением, определенным для флага AllowUntrustedCertificate . Начиная с Windows Vista с пакетом обновления 1 (SP1) можно установить сертификат, который связан с ненадежным корневым каталогом.
|
[in] strResponse
Переменная BSTR , содержащая ответ в кодировке DER.
[in] Encoding
Значение перечисления EncodingType , указывающее тип кодировки, применяемой к строке, содержащей ответ в кодировке DER.
[in, optional] strPassword
Необязательный пароль для установки сертификата. Это может быть значение NULL или пустая строка, указывающая на то, что пароль не используется. При наличии пароля очистите его из памяти после завершения использования, вызвав функцию SecureZeroMemory . Дополнительные сведения о защите пароля см. в разделе Обработка паролей.
Начиная с Windows 8 и Windows Server 2012, пустой пароль может означать, что пакет PFX был создан в функции PFXExportCertStoreEx с помощью флага PKCS12_PROTECT_TO_DOMAIN_SIDS . В этом случае PFX-файл был зашифрован в группе Active Directory. Дополнительные сведения см. в разделах PFXExportCertStoreEx и PFXImportCertStore.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает S_OK.
Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Код возврата | Описание |
---|---|
|
Этот метод был вызван из Интернета, и в параметре Restrictions был указан параметр AllowNoOutstandingRequest или AllowUntrustedCertificate. |
|
Длина строки, содержащей пароль, превышает 64 килобайта. |
|
Объект регистрации не инициализирован. |
Комментарии
Метод InstallResponse :
- Извлекает фиктивный сертификат из внешнего хранилища.
- Извлекает сертификат, содержащийся в ответе, и устанавливает его на компьютере.
- Копирует свойства из фиктивного сертификата во внешнем хранилище в только что установленный сертификат в личном хранилище.
Перед вызовом метода InstallResponse необходимо инициализировать объект IX509Enrollment , вызвав один из следующих методов.
При вызове этого метода из Интернета в параметре Restrictions можно указать только AllowNone или AllowUntrustedRoot. Если указать AllowNoOutstandingRequest или AllowUntrustedCertificate, метод возвращает ошибку E_ACCESSDENIED .
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |
DLL | CertEnroll.dll |