ICertServerExit::GetCertificateProperty 方法 (certif.h)
GetCertificateProperty方法會從憑證傳回具名屬性。
語法
HRESULT GetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[out] VARIANT *pvarPropertyValue
);
參數
[in] strPropertyName
指定要擷取的具名屬性。 有一組稱為 名稱屬性的存貨憑證屬性,一律有效,而且可以藉由呼叫此方法來擷取。 如需這些屬性的相關資訊,請參閱 名稱屬性。 可擷取的其他屬性包括憑證屬性。
下列屬性對憑證而言是唯一的,而且可由 GetCertificateProperty讀取。
值 | 意義 |
---|---|
|
憑證開始日期 |
|
憑證到期日 |
|
OID) (主體金鑰演算法物件識別碼 |
|
原始憑證位元組 |
|
主旨索引鍵 |
|
主旨金鑰演算法參數 |
|
內部要求識別碼 |
|
憑證序號 |
只有在原則模組完成處理要求併發出憑證之後, GetCertificateProperty 才能存取憑證的 DistinguishedName、RawName 和 SerialNumber 屬性。
下列屬性適用于 憑證授權單位單位。 內容必須是零,才能讀取這些屬性的任何一個。 最初建立 ICertServerExit 物件時,內容會設定為零。 叫用 SetCoNtext 方法也可以設定為零。
值 | 意義 |
---|---|
|
憑證授權單位單位的類型。 這可以是 Certsrv.h) 中定義 (下列其中一個值: ENUM_ENTERPRISE_ROOTCA ENUM_ENTERPRISE_SUBCA ENUM_STANDALONE_ROOTCA ENUM_STANDALONE_SUBCA |
|
CA 憑證數目。 此值會加上 CA 已更新的次數。 如需更新的相關資訊,請參閱 憑證授權單位單位更新。 |
|
CA 憑證 狀態。 這個值可以是下列其中一個值:
|
|
CA 憑證的尾碼。 尾碼是 CA 憑證的空字串,其索引為零;否則,尾碼 (格式為 「 (nn) 」,其中 nn 是憑證索引) 套用至指向儲存在檔案或目錄服務物件中 CA 憑證的所有 URL。 對於非LDAP URL,尾碼通常會出現在 「.crt」 文字之前。 針對 LDAP URL,尾碼通常會附加至完整辨別名稱中的第一個 'CN='。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新。 |
|
憑證撤銷清單 (CRL) 索引。 將憑證索引附加至此屬性名稱可讓您擷取 CRL 索引。 CRL 索引不一定符合憑證索引。 如需詳細資訊,請參閱 認證。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新。 |
|
CRL 狀態。 這個值可以是下列其中一個值:
|
|
CA CRL 的尾碼。 尾碼是 CRL 的空字串,其索引為零;否則,尾碼 (格式為 「 (nn) 」,其中 nn 是 CRL 索引) 會套用至指向儲存在檔案或目錄服務物件中 CRL 的所有 URL。 對於非 LDAP URL,尾碼通常會出現在 「.crl」 文字之前。 針對 LDAP URL,尾碼通常會附加至完整辨別名稱中的第一個 'CN='。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新。 |
|
指出 CA 是否使用目錄服務。 這可以是下列其中一個值:
|
|
裝載 CA 的伺服器 DNS 名稱。 |
|
模組可使用的登錄位置。 |
|
CA 憑證。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新。 |
|
CA 的 憑證撤銷清單 (CRL) 。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新。 |
|
指出要求者是否已獲授權要求憑證。 這可以是下列其中一個值:
|
|
CA 的清理名稱 。 如需清理 CA 名稱的相關資訊,請參閱 ICertConfig::GetConfig。 |
|
CA 的清理名稱 、縮短並包含 雜湊 值,以確保唯一性。 |
[in] PropertyType
指定屬性類型。 類型可以是下列其中一項。
值 | 意義 |
---|---|
|
帶正負號的長資料 |
|
Date/time |
|
二進位資料 |
|
Unicode 字串資料 |
[out] pvarPropertyValue
將包含屬性值之 VARIANT 的指標。 傳回的值會編碼為 BSTR。 使用 SysStringByteLen 函式來擷取 BSTR的長度。 二進位BLOB會儲存為可辨別編碼規則編碼的 X.509 憑證。
傳回值
C++
如果方法成功,方法會傳回S_OK。如果方法失敗,它會傳回指出錯誤的 HRESULT 值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值。
VB
傳回值是要求的屬性值。備註
您必須先呼叫 ICertServerExit::SetCoNtext ,才能使用此方法。
範例
BSTR bstrPropName = NULL;
VARIANT varProp;
VariantInit(&varProp);
// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");
// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
PROPTYPE_LONG,
&varProp );
if (FAILED(hr))
{
printf("Failed GetCertificateProperty [%x]\n", hr);
goto error;
}
else
{
// Successfully retrieved property; use varProp as needed.
// ...
}
// Done processing.
if (NULL != bstrPropName)
SysFreeString(bstrPropName);
VariantClear(&varProp);
規格需求
最低支援的用戶端 | 都不支援 |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | certif.h (包含 Certsrv.h) |
程式庫 | Certidl.lib |
Dll | Certcli.dll |