ICertificates2::Find 方法
[CAPICOM 是一个仅 32 位组件,可用于以下操作系统:Windows Server 2008、Windows Vista 和 Windows XP。 请改用 System.Security.Cryptography.X509Certificates 命名空间中的 X509Certificate2Collection 类。]
Find 方法返回一个 Certificates 对象,该对象包含与指定搜索条件匹配的所有证书。 此方法是在 CAPICOM 2.0 中引入的。
语法
Certificates.Find( _
ByVal FindType, _
[ ByVal varCriteria ], _
[ ByVal bFindValidOnly ] _
)
参数
-
FindType [in]
-
CAPICOM_CERTIFICATE_FIND_TYPE枚举的值,该值指定 varCriteria 参数中提供的匹配条件的类型。 下表列出了可能的值。
“值” 含义 - CAPICOM_CERTIFICATE_FIND_SHA1_HASH
返回与 varCriteria 参数中指定的 SHA1 哈希匹配的 SHA1 哈希的证书。 - CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME
返回其使用者名称与 varCriteria 参数中指定的使用者名称完全匹配或部分匹配的证书。 此调用仅搜索使用者名称字段。 - CAPICOM_CERTIFICATE_FIND_ISSUER_NAME
返回证书,其颁发者名称与 varCriteria 参数中指定的颁发者名称完全匹配或部分匹配。 此调用仅搜索颁发者名称字段。 - CAPICOM_CERTIFICATE_FIND_ROOT_NAME
返回根使用者名称与 varCriteria 参数中指定的根使用者名称完全匹配或部分匹配的证书。 此调用将创建链。 此调用将搜索根证书的使用者名称字段。 - CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME
返回模板名称与 varCriteria 参数中指定的模板名称匹配的证书。 - CAPICOM_CERTIFICATE_FIND_EXTENSION
返回具有与 varCriteria 参数中指定的扩展匹配的扩展的证书。 - CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY
返回存储区中的证书,该存储中显式包含 具有 varCriteria 参数中指定的值的扩展属性。 - CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY
返回存储中的证书,该存储中具有增强型密钥使用扩展、应用程序策略扩展或 varCriteria 参数中指定的扩展属性。 - CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY
返回在 varCriteria 参数中指定的证书策略扩展中包含策略 OID 的证书。 - CAPICOM_CERTIFICATE_FIND_TIME_VALID
返回其时间有效的证书。 - CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID
返回其时间尚无效的证书。 - CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED
返回其时间已过期的证书。 - CAPICOM_CERTIFICATE_FIND_KEY_USAGE
返回包含 varCriteria 参数中指定的 KeyUsage 扩展中的密钥用法的证书。 如果 KeyUsage 扩展不存在,则假定所有密钥用法都不可用。 -
varCriteria [in, 可选]
-
包含搜索条件的变体。 此数据必须与 FindType 参数中指定的数据类型匹配。 如果 FindType 参数的值CAPICOM_CERTIFICATE_FIND_TIME_VALID、CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID或CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED且未将值传递到此参数,则假定当前时间。 有关每种数据类型的示例,请参阅“备注”。 默认值为 0。
-
bFindValidOnly [in, 可选]
-
一个布尔值,该值指示是否只返回有效的证书。 默认值为 false;这表示返回与搜索条件匹配的所有证书。
如果为 true,搜索将不会返回以下类型的证书:
- 其时间已过期或尚无效的证书。
- 证书未正确链接。
- 具有签名问题的证书。
- 吊销的证书。
返回值
包含搜索结果的 Certificates 对象。
CAPICOM 2.1: 返回的 Certificates 对象包含对完成搜索的集合中的证书的引用。 对返回的 Certificates 对象中的证书所做的任何更改都反映在该集合中。
CAPICOM 2.0、CAPICOM 2.0.0.1、CAPICOM 2.0.0.2 和 CAPICOM 2.0.0.3: 返回的 Certificates 对象包含完成搜索的集合中证书的副本。 对返回 的 Certificates 对象中的证书所做的任何更改都不会反映在该集合中。
注解
以下示例显示了不同搜索条件类型的可能搜索条件。
FindType 参数 | varCriteria 参数 |
---|---|
CAPICOM_CERTIFICATE_FIND_SHA1_HASH | 33F362434B577F844BB7226BE36F7D72EF9D9393 |
CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME | “NameOfPerson” |
CAPICOM_CERTIFICATE_FIND_ISSUER_NAME | “VeriSign” |
CAPICOM_CERTIFICATE_FIND_ROOT_NAME | “Microsoft 根机构” |
CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME | “AutoEnrollEFS” 1.3.6.1.4.1.311.21.8.3692315854.1256661383.1690418588.4201632533.1741915387.2177932052 |
CAPICOM_CERTIFICATE_FIND_EXTENSION | "2.5.29.31" CAPICOM_OID_KEY_USAGE_EXTENSION “CRL 通讯组列表” |
CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY | CAPICOM_PROPID_KEY_PROV_INFO |
CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY | "1.3.6.1.5.5.7.3.3" "1.3.6.1.5.5.7.3.4" CAPICOM_OID_SERVER_AUTH_EKU “代码签名” |
CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY | "1.3.6.1.5.5.7.3.4.3.5" “公司高保证” |
CAPICOM_CERTIFICATE_FIND_TIME_VALID | #04/15/2002,下午 6:00# |
CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID | #04/15/2002,下午 6:00# |
CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED | #04/15/2002,下午 6:00# |
CAPICOM_CERTIFICATE_FIND_KEY_USAGE | CAPICOM_ENCIPHER_ONLY_KEY_USAGE |
要求
要求 | 值 |
---|---|
客户端支持结束 |
Windows Vista |
服务器支持结束 |
Windows 2008 Server |
可再发行组件 |
Windows Server 2003 和 Windows XP 上的 CAPICOM 2.0 或更高版本 |
DLL |
|
请参阅