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


Метод ICertRequest3::SetCredential (certcli.h)

Метод SetCredential задает учетные данные, используемые для связи с веб-службой регистрации сертификатов.

Синтаксис

HRESULT SetCredential(
  [in] LONG                    hWnd,
  [in] X509EnrollmentAuthFlags AuthType,
  [in] BSTR                    strCredential,
  [in] BSTR                    strPassword
);

Параметры

[in] hWnd

Дескриптор родительского окна.

Для получения учетных данных необходимо задать параметр hWnd .

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

При использовании kerberos, анонимной проверки подлинности или проверки подлинности имени пользователя и пароля этот параметр игнорируется.

[in] AuthType

Значение перечисления X509EnrollmentAuthFlags , указывающее тип проверки подлинности.

Значение Значение
X509AuthAnonymous
Анонимная проверка подлинности.

Задайте для параметров strCredential и strPasswordзначение NULL или пустые строки.

X509AuthCertificate
Сертификат проверки подлинности клиента, установленный на локальном компьютере. Сертификат содержит открытый ключ , связанный с закрытым ключом (не содержащимся в сертификате). Сертификат используется сервером для проверки удостоверения клиента.

Параметр strCredential содержит двоичный 20-байтовый хэш SHA-1 сертификата, который передается в веб-службу регистрации сертификатов для проверки подлинности вызывающего объекта. Задайте для параметра strPasswordзначение NULL или пустую строку. Параметр strCredential должен ссылаться на сертификат, установленный в соответствующем личном хранилище сертификатов, и должен иметь связанный закрытый ключ, доступный вызывающему объекту.

X509AuthKerberos
Аутентификация Kerberos.

Задайте для параметров strCredential и strPasswordзначение NULL или пустые строки.

X509AuthUsername
Проверка подлинности имени пользователя и пароля в формате обычного текста. Имя пользователя и пароль шифруются при их хранении в хранилище учетных данных на клиенте.

Параметры strCredential и strPassword содержат строку имени пользователя и пароль в виде открытого текста, которые поддерживаются веб-службой регистрации сертификатов для проверки подлинности вызывающего объекта. Так как подключение службы регистрации всегда использует протокол SSL , пароль шифруется при отправке по сети.

[in] strCredential

Строка, содержащая учетные данные.

[in] strPassword

Строка, содержащая пароль.

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

Код возврата Описание
E_INVALIDARG
Параметр AuthType должен иметь значение X509AuthKerberos.

Комментарии

Перед вызовом метода ICertRequest2::Submit необходимо вызвать метод SetCredential.

Аргументы strCredential и strPassword изменяются в зависимости от значения, указанного в параметре AuthType , как показано в следующей таблице.

Параметр AuthType Параметр strCredential Параметр strPassword
X509AuthAnonymous NULL NULL
X509AuthCertificate 20-байтный хэш SHA-1 (отпечаток) сертификата NULL
X509AuthKerberos NULL NULL
X509AuthUsername Имя пользователя в виде открытого текста, распознаваемое веб-службой регистрации сертификатов. Пароль в виде открытого текста, связанный с именем пользователя.

Требования

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

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

CCertRequest

ICertRequest3