共用方式為


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
Capicom.dll

另請參閱

憑證

CAPICOM_OID