ICertServerPolicy::SetCertificateExtension 方法 (certif.h)

SetCertificateExtension 方法會將新的延伸模組新增至憑證。

語法

HRESULT SetCertificateExtension(
  [in] const BSTR    strExtensionName,
  [in] LONG          Type,
  [in] LONG          ExtFlags,
  [in] const VARIANT *pvarValue
);

參數

[in] strExtensionName

指定要設定延伸模組的物件 標識碼 (OID) 。 字串長度必須為 31 或更少非 Null 字元。

[in] Type

指定要設定的延伸模組類型。 Type 參數必須同意 VARIANT 結構的 vt 字段中所設定的 pvarValue 數據類型。 Type 參數可以設定為下列其中一種類型。

意義
PROPTYPE_LONG
帶正負號的長數據。
PROPTYPE_DATE
日期/時間。
PROPTYPE_BINARY
延伸模組值會設定為 is,並視需要假設為 ASN.1 編碼。
PROPTYPE_STRING
延伸模組值將會是 ASN.1 編碼為 IA5 字串,再放在新的憑證中。
注意 只有當您想要將 URL 自動編碼為 IA5 字串時,才應該針對包含單一 URL 的延伸模組值使用 PROPTYPE_STRING 。 否則,請自行將 URL 編碼為 IA5 字串,並將編碼的值傳遞為 PROPTYPE_BINARY
 

[in] ExtFlags

指定所設定延伸模組的旗標。 如果未設定旗標,請使用零的值,或使用下列其中一個旗標值。 您可以使用 OR 運算符將這些旗標聯結在一起,也可以使用 OR 運算元搭配原則私用擴充旗標來聯結這些旗標, (EXTENSION_POLICY_MASK 欄位) 的高 8 位。

注意ExtFlags 設定為EXTENSION_DISABLE_FLAG時,擴充功能將會在伺服器記錄檔中停用,且不會新增至憑證。
 
意義
EXTENSION_CRITICAL_FLAG
這是重要的延伸模組。
EXTENSION_DISABLE_FLAG
將不會使用擴充功能。

[in] pvarValue

指定與延伸模組相關聯的值。 請注意,值的 VARIANT 類型必須同意 Type 參數,如下表所示。

意義
PROPTYPE_LONG
VT_I4
PROPTYPE_DATE
VT_DATE
PROPTYPE_BINARY
VT_BSTR
PROPTYPE_STRING
VT_BSTR

傳回值

VB

如果方法成功,方法會傳回S_OK。

如果方法失敗,它會傳回 HRESULT 值,指出錯誤。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

備註

使用延伸模組以包含憑證的其他資訊,例如補充主體或使用資訊。 如需詳細資訊,請參閱 延伸模塊處理程式

ICertPolicy2::VerifyRequest 方法的實作呼叫 SetCertificateExtension 方法。 您必須先呼叫 ICertServerPolicy::SetContext 方法,才能呼叫 SetCertificateExtension 方法。

規格需求

需求
最低支援的用戶端 都不支援
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 certif.h (包括 Certsrv.h)
程式庫 Certidl.lib
Dll Certcli.dll

另請參閱

ICertServerPolicy

ICertServerPolicy::SetContext