InitializeFromTemplateName 方法使用模板初始化证书请求。
Syntax
HRESULT InitializeFromTemplateName(
[in] X509CertificateEnrollmentContext Context,
[in] BSTR strTemplateName
);
参数
[in] Context
X509CertificateEnrollmentContext 枚举值,该值指定请求的证书是针对最终用户、计算机还是代表计算机的管理员。
[in] strTemplateName
一个 BSTR 变量,其中包含模板的公用名(CN),因为它出现在 Active Directory 或虚线的小数 对象标识符中。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括但不限于下表中的值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
| 返回代码/值 | Description |
|---|---|
|
证书请求对象已初始化。 |
注解
InitializeFromTemplateName 方法创建以下集合:
- ICryptAttributes 集合。
- IX509Extensions 集合。
- 使用默认XCN_OID_KEY_USAGE和XCN_OID_BASIC_CONSTRAINTS2对象标识符填充的 IObjectIds 集合。
- 要从新请求中取消的属性和扩展 OID 的空 IObjectId 集合 。
然后,该方法检查模板并执行以下作:
- 将模板指定的扩展添加到 IX509Extensions 集合。
- 如果模板指示它们不是关键扩展,则从集合中删除默认的关键扩展(XCN_OID_KEY_USAGE和XCN_OID_BASIC_CONSTRAINTS2)。 添加了由模板标记为关键型的 OID。
- 如果模板支持对称算法,则设置 SmimeCapabilities 属性。
- 如果模板需要离散签名算法 OID,则设置 AlternateSignatureAlgorithm 属性。
- 创建 IX509SignatureInformation 对象。
- 如果在模板中指定了该算法并在 IX509SignatureInformation 对象上设置该算法,则创建哈希算法 OID。
- 如果在模板中指定了该算法并在 IX509SignatureInformation 对象上设置该算法,则创建非对称加密算法 OID。
- 从模板设置中设置以下 IX509PrivateKey 属性:
如果 CSPInformations 属性为 NULL,该方法将从计算机上安装的提供程序创建 一个 ICspInformations 集合。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2008 [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | certenroll.h |
| DLL | CertEnroll.dll |