InitializeFromTemplateName 方法透過範本初始化憑證請求。
語法
HRESULT InitializeFromTemplateName(
[in] X509CertificateEnrollmentContext Context,
[in] BSTR strTemplateName
);
參數
[in] Context
X509CertificateEnrollmentContext 枚舉值,指定所請求憑證是針對終端使用者、電腦,還是代表電腦的管理員。
[in] strTemplateName
一個包含模板在 Active Directory 中出現的通用名稱(CN)或虛點十進位物件識別碼的 BSTR 變數。
返回值
如果函式成功,函式會傳回 S_OK。
如果函式失敗,它會傳回指出錯誤的 HRESULT 值。 可能的值包括但不限於下表中的值。 如需常見錯誤碼的清單,請參閱 常見的 HRESULT 值。
| 傳回碼/值 | Description |
|---|---|
|
憑證請求物件已經初始化。 |
備註
InitializeFromTemplateName 方法會建立以下集合:
- 一個 ICryptAttributes 集合。
- 一個 IX509Extensions 收藏。
- 一個以預設XCN_OID_KEY_USAGE和XCN_OID_BASIC_CONSTRAINTS2物件識別碼填充的 IObjectIds 集合。
- 一個空的 IObjectIds 集合,用於從新請求中抑制屬性與擴展 OID。
接著,該方法會檢查範本並執行以下操作:
- 將範本指定的擴充功能加入 IX509Extensions 集合。
- 若模板顯示預設的關鍵擴充檔名(XCN_OID_KEY_USAGE 和 XCN_OID_BASIC_CONSTRAINTS2)非關鍵,則會從集合中移除。 模板標記為關鍵的 OID(目標識別裝置)會被加入。
- 若範本支援對稱演算法,則設定 SmimeCapabilities 屬性。
- 若範本需要離散簽章演算法 OID,則設定 AlternateSignatureAlgorithm 屬性。
- 建立 一個 IX509SignatureInformation 物件。
- 若該演算法在範本中指定,則建立雜湊演算法 OID,並將該演算法設於 IX509SignatureInformation 物件上。
- 若該演算法在範本中指定,則建立一個非對稱加密演算法 OID,並將該演算法設於 IX509SignatureInformation 物件上。
- 從範本設定中設定以下 IX509PrivateKey 屬性:
若 CSPInformations 屬性為 NULL,該方法會從電腦上安裝的提供者建立 ICspInformations 集合。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | certenroll.h |
| DLL | CertEnroll.dll |