ICertServerExit::GetCertificateProperty 方法 (certif.h)

GetCertificateProperty方法會從憑證傳回具名屬性。

語法

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

參數

[in] strPropertyName

指定要擷取的具名屬性。 有一組稱為 名稱屬性的存貨憑證屬性,一律有效,而且可以藉由呼叫此方法來擷取。 如需這些屬性的相關資訊,請參閱 名稱屬性。 可擷取的其他屬性包括憑證屬性。

下列屬性對憑證而言是唯一的,而且可由 GetCertificateProperty讀取。

意義
NotBefore
日期/時間
憑證開始日期
NotAfter
日期/時間
憑證到期日
PublicKeyAlgorithm
String
OID) (主體金鑰演算法物件識別碼
RawCertificate
Binary
原始憑證位元組
RawPublicKey
Binary
主旨索引鍵
RawPublicKeyAlgorithmParameters
Binary
主旨金鑰演算法參數
RequestID
帶正負號的 Long
內部要求識別碼
SerialNumber
String
憑證序號
 

只有在原則模組完成處理要求併發出憑證之後, GetCertificateProperty 才能存取憑證的 DistinguishedName、RawName 和 SerialNumber 屬性。

下列屬性適用于 憑證授權單位單位。 內容必須是零,才能讀取這些屬性的任何一個。 最初建立 ICertServerExit 物件時,內容會設定為零。 叫用 SetCoNtext 方法也可以設定為零。

意義
CAType
long
憑證授權單位單位的類型。 這可以是 Certsrv.h) 中定義 (下列其中一個值:

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
long
CA 憑證數目。 此值會加上 CA 已更新的次數。 如需更新的相關資訊,請參閱 憑證授權單位單位更新
CertState
long
CA 憑證 狀態。 這個值可以是下列其中一個值:
CA_DISP_ERROR:從未發行 CA 憑證。
CA_DISP_REVOKED:CA 憑證已撤銷。
CA_DISP_VALID:CA 憑證仍然有效。
CA_DISP_INVALID:CA 憑證已過期。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新
CertSuffix
String
CA 憑證的尾碼。 尾碼是 CA 憑證的空字串,其索引為零;否則,尾碼 (格式為 「 (nn) 」,其中 nn 是憑證索引) 套用至指向儲存在檔案或目錄服務物件中 CA 憑證的所有 URL。 對於非LDAP URL,尾碼通常會出現在 「.crt」 文字之前。 針對 LDAP URL,尾碼通常會附加至完整辨別名稱中的第一個 'CN='。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

CRLIndex
long
憑證撤銷清單 (CRL) 索引。 將憑證索引附加至此屬性名稱可讓您擷取 CRL 索引。 CRL 索引不一定符合憑證索引。 如需詳細資訊,請參閱 認證

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

CRLState
long
CRL 狀態。 這個值可以是下列其中一個值:
CA_DISP_ERROR:CRL 是由另一個 CA 憑證管理。
CA_DISP_REVOKED:已撤銷使用此 CA 憑證 CRL 的所有未到期 CA 憑證。
CA_DISP_VALID:CA 憑證仍會視需要用來發佈 CRL。
CA_DISP_INVALID:使用此 CA 憑證 CRL 的所有 CA 憑證都已過期。
這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新
CRLSuffix
String
CA CRL 的尾碼。 尾碼是 CRL 的空字串,其索引為零;否則,尾碼 (格式為 「 (nn) 」,其中 nn 是 CRL 索引) 會套用至指向儲存在檔案或目錄服務物件中 CRL 的所有 URL。 對於非 LDAP URL,尾碼通常會出現在 「.crl」 文字之前。 針對 LDAP URL,尾碼通常會附加至完整辨別名稱中的第一個 'CN='。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

fUseDS
long
指出 CA 是否使用目錄服務。 這可以是下列其中一個值:
  • 0=no
  • 1=是
MachineDNSName
String
裝載 CA 的伺服器 DNS 名稱。
ModuleRegistryLocation
String
模組可使用的登錄位置。
RawCACertificate
Binary
CA 憑證。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

RawCRL
Binary
CA 的 憑證撤銷清單 (CRL) 。

這個屬性名稱可能會附加 '.#',其中 # 代表 CA 憑證索引 (,或 CRLSuffix 屬性的 CRL 索引) 。 如需憑證和 CRL 索引的相關資訊,請參閱 憑證授權單位單位更新

RequesterCAAccess
long
指出要求者是否已獲授權要求憑證。 這可以是下列其中一個值:
  • 0=no
  • 1=是
(憑證授權單位單位 MMC 嵌入式管理單元可用來控制 憑證要求 許可權。)
SanitizedCAName
String
CA 的清理名稱 。 如需清理 CA 名稱的相關資訊,請參閱 ICertConfig::GetConfig
SanitizedShortName
String
CA 的清理名稱 、縮短並包含 雜湊 值,以確保唯一性。

[in] PropertyType

指定屬性類型。 類型可以是下列其中一項。

意義
PROPTYPE_LONG
帶正負號的長資料
PROPTYPE_DATE
Date/time
PROPTYPE_BINARY
二進位資料
PROPTYPE_STRING
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

另請參閱

ICertServerExit

ICertServerExit::SetCoNtext

名稱屬性