ICertProperty::SetValueOnCertificate 方法 (certenroll.h)
SetValueOnCertificate 方法将属性值与现有证书相关联。
语法
HRESULT SetValueOnCertificate(
[in] VARIANT_BOOL MachineContext,
[in] EncodingType Encoding,
[in] BSTR strCertificate
);
参数
[in] MachineContext
一个VARIANT_BOOL值,该值指示证书存储是针对本地计算机还是当前用户。 为计算机指定 VARIANT_TRUE ,为用户指定 VARIANT_FALSE 。
[in] Encoding
一个 EncodingType 枚举值,该值指定应用于 strCertificate 参数标识的证书字符串的 Unicode 编码的类型。
[in] strCertificate
包含 DER 编码证书的 BSTR 变量。
从 Windows 7 和 Windows Server 2008 R2 开始,可以指定证书指纹或序列号,而不是编码证书。 这样做会导致函数在相应的本地存储区中搜索匹配的证书。 请注意以下几点:
- BSTR 必须是十六进制数字的偶数。
- 忽略十六进制对之间的空格。
- Encoding 参数必须设置为 XCN_CRYPT_STRING_HEXRAW。
- MachineContext 参数确定是搜索用户或计算机存储还是同时搜索两者。
- 如果需要私钥,则仅搜索个人和请求存储。
- 如果不需要私钥,则还会搜索根和中间 CA 存储。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
返回代码/值 | 说明 |
---|---|
|
找不到证书。 |
|
已找到证书,但无法加载私钥。 |
注解
调用 InitializeDecode 方法或 InitializeFromCertificate 方法来创建属性值。 在调用任一方法之前,必须先设置 PropertyId 属性以指定要初始化的属性值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |
DLL | CertEnroll.dll |