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
傳回具有 SHA1 雜湊的憑證,該雜湊符合 varCriteria 參數中指定的 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, optional]
-
包含搜尋準則的變體。 此資料必須符合 FindType 參數中指定的資料類型。 如果 FindType 參數的值是CAPICOM_CERTIFICATE_FIND_TIME_VALID、CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID或CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED,而且您未將值傳遞至此參數,則會假設目前的時間。 如需每個資料類型的範例,請參閱。 預設值為 0。
-
bFindValidOnly [in, optional]
-
布林值,指出是否只傳回有效的憑證。 預設值為 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 Root Authority」 |
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 Server 2008 |
可轉散發套件 |
Windows Server 2003 和 Windows XP 上的 CAPICOM 2.0 或更新版本 |
DLL |
|
另請參閱