IX509CertificateRequestPkcs7V2::InitializeFromTemplate 方法 (certenroll.h)

InitializeFromTemplate方法會使用範本初始化憑證要求。

語法

HRESULT InitializeFromTemplate(
  [in] X509CertificateEnrollmentContext context,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

參數

[in] context

X509CertificateEnrollmentCoNtext列舉值,指定要求的憑證是否適用于使用者、電腦或代表電腦的系統管理員。 這可以是下列其中一個值。

意義
CoNtextUser
使用者要求憑證。
CoNtextMachine
正在要求電腦的憑證。
CoNtextAdministratorForceMachine
系統管理員代表電腦要求憑證。

[in] pPolicyServer

IX509EnrollmentPolicyServer物件的指標,代表 CEP (CEP) 伺服器之憑證註冊原則,其中包含pTemplate參數所指定的範本。

[in] pTemplate

IX509CertificateTemplate物件的指標,代表初始化期間要使用的範本。

傳回值

如果函式成功,函式會傳回 S_OK

如果函式失敗,它會傳回 HRESULT 值,指出錯誤。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

傳回碼/值 Description
E_POINTER
pTemplate參數不可為Null
ERROR_ALREADY_INITIALIZED
憑證要求物件已經初始化。

備註

InitializeFromTemplate方法會建立 PKCS #7 要求物件,並將下列屬性設定為呼叫此方法之前存在的值:

方法會建立下列集合:

方法接著會檢查範本,並執行下列動作:

  • 將範本指定的延伸模組新增至 IX509Extensions 集合。
  • 如果範本指出它們不重要,請從集合中移除預設的重要延伸模組 (XCN_OID_KEY_USAGE 和XCN_OID_BASIC_CONSTRAINTS2) 。 範本標示為重大的 OID 會新增。
  • 如果範本支援對稱演算法,請設定 SmimeCapabilities 屬性。
  • 如果範本需要離散簽章演算法 OID,請設定 AlternateSignatureAlgorithm 屬性。
  • 建立 IX509SignatureInformation 物件。
  • 如果在範本中指定演算法,並在 IX509SignatureInformation 物件上設定該演算法,則會建立雜湊演算法 OID。
  • 如果在範本中指定演算法,並在 IX509SignatureInformation 物件上設定演算法,則會建立非對稱加密演算法 OID。
  • 從範本設定填入許多 IX509PrivateKey 屬性。

如果 CSPInformations 屬性為 Null,此方法會從電腦上安裝的提供者建立 ICspInformations 集合。

最後,方法會將初始化的 PKCS #10 要求設定為內部要求物件。

規格需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 certenroll.h

另請參閱

IX509CertificateRequestPkcs7V2