IX509Enrollment2::InstallResponse2 方法(certenroll.h)

InstallResponse2 方法在最终实体计算机上安装证书链。 包含响应的字节数组通过使用抽象语法表示法一(ASN.1)标准定义的可分辨编码规则(DER)进行编码。 必须在纯二进制序列或 Unicode 编码的字符串中指定 DER 编码字节数组。 此方法已启用 Web。

Syntax

HRESULT InstallResponse2(
  [in]           InstallResponseRestrictionFlags Restrictions,
  [in]           BSTR                            strResponse,
  [in]           EncodingType                    Encoding,
  [in, optional] BSTR                            strPassword,
  [in]           BSTR                            strEnrollmentPolicyServerUrl,
  [in]           BSTR                            strEnrollmentPolicyServerID,
  [in]           PolicyServerUrlFlags            EnrollmentPolicyServerFlags,
  [in]           X509EnrollmentAuthFlags         authFlags
);

参数

[in] Restrictions

InstallResponseRestrictionFlags 枚举值,该值指定可安装的证书的类型。 这可以是以下一个或多个值。

价值 Meaning
AllowNone
不要安装没有相应请求的不受信任的证书或证书。
AllowNoOutstandingRequest
从证书响应而不是虚拟证书创建 私钥 。 这使得虚拟证书是可选的。 如果未设置此值,则虚拟证书必须存在,并从中提取私钥。
AllowUntrustedCertificate
安装不受信任的结束实体和 证书颁发机构 证书。 证书颁发机构证书包括根证书和从属 CA 证书。 最终实体证书安装到个人存储,CA 证书将安装到证书颁发机构存储中。
AllowUntrustedRoot
执行与 AllowUntrustedCertificate 标志相同的作,但即使无法生成证书链,也安装证书,因为根不受信任。
注意 在 Windows Vista 上,此标志的行为与为 AllowUntrustedCertificate 标志定义的行为相同。 可以从 Windows Vista SP1 开始安装不受信任的根。
 

[in] strResponse

包含 DER 编码响应的 BSTR 变量。

[in] Encoding

一个 EncodingType 枚举值,该值指定应用于包含 DER 编码响应的字符串的编码类型。

[in, optional] strPassword

证书安装的可选密码。 这可以是 NULL ,指示不使用任何密码。 使用完密码后,通过调用 SecureZeroMemory 函数从内存中清除密码。 有关保护密码的详细信息,请参阅 “处理密码”。

[in] strEnrollmentPolicyServerUrl

包含证书注册策略 (CEP) 服务器的 URL 的 BSTR

[in] strEnrollmentPolicyServerID

包含 CEP 服务器的标识符的 BSTR

[in] EnrollmentPolicyServerFlags

PolicyServerUrlFlags 枚举值。 这可以是以下值之一。

价值 Meaning
PsfLocationGroupPolicy
CEP 服务器 URL 由管理员在组策略中指定。
PsfLocationRegistry
CEP 服务器 URL 在注册表中指定。
PsfUseClientId
指定证书注册和续订在 ClientId 属性中包含特定于客户端的数据。 示例包括加密服务提供商的名称、Windows 版本号、用户名、计算机 DNS 名称和域控制器 DNS 名称。 可以通过组策略设置此标志。

此标志已包含在内,以解决注册到由管理员管理的用户所在的林以外的管理员管理的服务器时可能出现的隐私问题。 如果不设置此标志,可以阻止向非本地管理员发送个人信息。

PsfAutoEnrollmentEnabled
已启用自动证书注册。
PsfAllowUnTrustedCA
指定客户端无需信任颁发 CA 的证书,才能安装由 CA 签名的证书。

[in] authFlags

指定客户端身份验证类型的 X509EnrollmentAuthFlags 枚举值。 对于 Windows 7,只能从以下值中选择 X509AuthCertificate

价值 Meaning
X509AuthAnonymous
匿名身份验证。
X509AuthKerberos
Kerberos 身份验证。
X509AuthUsername
明文用户名和密码身份验证。
注意 用户名和密码在传输之前进行加密,并安全地存储在 CEP 服务器上的凭据保管库中。
 
X509AuthCertificate
在本地计算机上安装的客户端身份验证证书,由服务器用来验证客户端的身份。

返回值

如果函数成功,该函数将返回 S_OK

如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括但不限于下表中的值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码 Description
E_ACCESSDENIED
此方法是从 Web 调用的,在 Restrictions 参数中指定了 AllowNoOutstandingRequestAllowUntrustedCertificate
HRESULT_FROM_WIN32(ERROR_ARITHMETIC_OVERFLOW
包含密码的字符串长度超过 64 KB。
OLE_E_BLANK
注册对象尚未初始化。

注解

InstallResponse2 方法:

  1. 从外部存储中检索虚拟证书。
  2. 检索响应中包含的证书,并将其安装在计算机上。
  3. 将外部存储中的虚拟证书中的属性复制到个人存储中新安装的证书。

在调用 InstallResponse2 方法之前,必须通过调用以下方法之一来初始化 IX509Enrollment 对象。

如果从 Web 调用此方法,则只能在 Restrictions 参数中指定 AllowNoneAllowUntrustedRoot。 如果指定 AllowNoOutstandingRequestAllowUntrustedCertificate,该方法将返回 E_ACCESSDENIED 错误。

InstallResponse 方法中不包括最后四个参数(strEnrollmentPolicyServerUrlstrEnrollmentPolicyServerIDEnrollmentPolicyServerFlagsauthFlags)。 它们使你能够像 ICertPropertyEnrollmentPolicyServer 接口那样向已安装的证书添加属性值。

要求

Requirement 价值
最低支持的客户端 Windows 7 [仅限桌面应用]
支持的最低服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows操作系统
Header certenroll.h

另请参阅

IX509Enrollment2