ICertAdmin2::GetCAProperty 方法 (certadm.h)
GetCAProperty 方法會擷取證書頒發機構單位的屬性值, (CA) 。 這個方法最初是在 ICertAdmin 介面中定義。
語法
HRESULT GetCAProperty(
[in] const BSTR strConfig,
[in] LONG PropId,
[in] LONG PropIndex,
[in] LONG PropType,
[in] LONG Flags,
[out] VARIANT *pvarPropertyValue
);
參數
[in] strConfig
代表 CA 的有效組態字串,格式為 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是憑證服務伺服器的網路名稱,而 CANAME 是 CA 的一般名稱,如憑證服務設定期間所輸入。 如需設定字串名稱的相關信息,請參閱 ICertConfig。
[in] PropId
指定下列其中一個屬性識別碼。
值 | 意義 |
---|---|
|
屬性的數據類型:Long 指定 CA 是否正在執行進階伺服器。 |
|
屬性的數據類型:二進位、已編製索引 CA 的完整或基底 證書吊銷清單 (CRL) 。 |
|
屬性的數據類型:Long、indexed 基底 CRL 發佈狀態。 如需詳細資訊,請參閱備註。 |
|
屬性的數據類型:二進位、已編製索引 向後交叉憑證。 回溯交叉憑證是從 CA 更新時發出的憑證,以 CA 的新密鑰簽署本身。 回溯交叉憑證具有新 CA 憑證的授權單位密鑰標識碼,以及舊 CA 憑證的主體金鑰標識碼。 僅適用於根 CA。 |
|
屬性的數據類型:Long、indexed 回溯交叉憑證是否有效。 僅適用於根 CA。 |
|
屬性的數據類型:Long CA 憑證的狀態。 其值可能是:
|
|
屬性的數據類型:Long、indexed CA 憑證的狀態,以 HRESULT 表示。 |
|
屬性的數據類型:Long、indexed CA 憑證的版本,以 DWORD 表示。 高序字是索引鍵索引,而低序字則為 CA 憑證索引。 |
|
屬性的數據類型:二進位、已編製索引 正向交叉憑證。 正向交叉憑證是從 CA 更新時所簽發的憑證,以 CA 先前的金鑰簽署。 正向交叉憑證具有先前 CA 憑證的授權單位金鑰標識碼,以及新 CA 憑證的主體金鑰標識碼。 僅適用於根 CA。 |
|
屬性的數據類型:Long、indexed 正向交叉憑證是否有效。 僅適用於根 CA。 |
|
屬性的數據類型:String CA 的名稱。 |
|
屬性的數據類型:二進位、已編製索引 CA 簽署憑證。 |
|
屬性的數據類型:二進位、已編製索引 CA 簽署憑證鏈結。 |
|
屬性的數據類型:Long CA 簽署憑證數目。 |
|
屬性的數據類型:二進位、已編製索引 CA 簽署憑證CRL鏈結。 |
|
屬性的數據類型:Long CA 的類型。 這可以是 Certsrv.h) 中定義 (下列其中一個值:
|
|
屬性的數據類型:二進位、已編製索引 CA 交換憑證。 |
|
屬性的數據類型:二進位、已編製索引 CA 交換憑證鏈結。 |
|
屬性的數據類型:Long CA 的交換憑證數目。 |
|
屬性的數據類型:二進位、已編製索引 CA 的交換憑證 CRL 鏈結。 |
|
屬性的數據類型:字串、已編製索引 指定授權單位資訊存取 URL 做為用戶端要求的 URL 類型。 Windows Server 2003: 不支援此旗標。 |
|
屬性的數據類型:字串、已編製索引 將CRL發佈點URL指定為用戶端所要求的URL類型。 Windows Server 2003: 不支援此旗標。 |
|
屬性的數據類型:Long CA CRL 的狀態。 其值可能是:
|
|
屬性的數據類型:二進位、已編製索引 CA 的差異 CRL。 |
|
屬性的數據類型:Long、indexed 差異CRL發佈狀態。 如需詳細資訊,請參閱備註。 |
|
屬性的數據類型:String CA 的 DNS 名稱。 |
|
屬性的數據類型:Long CA 正在使用的結束模組數目。 |
|
屬性的數據類型:String 結束模組的描述。 |
|
屬性的數據類型:String 憑證服務檔案版本。 |
|
屬性的數據類型:二進位、已編製索引 CA 的金鑰修復代理程式 (KRA) 憑證。 |
|
屬性的數據類型:Long CA 的 KRA 憑證數目。 |
|
屬性的數據類型:Long、indexed KRA 的憑證狀態。 傳回值可以是下列其中之一:
|
|
屬性的數據類型:Long CA 所使用的 KRA 憑證數目。 |
|
屬性的數據類型:String CA 的父 CA 名稱。 |
|
屬性的數據類型:String 原則模組的描述。 |
|
屬性的數據類型:String 檔案隨附的產品版本。 |
|
屬性的數據類型:Long 值,指定是否啟用角色分隔。 |
|
屬性的數據類型:String CA 的清理名稱。 如需清理 CA 名稱的定義,請參閱 ICertConfig2::GetConfig。 |
|
屬性的數據類型:String CA 的清理簡短名稱。 如需清理 CA 簡短名稱的定義,請參閱 ICertConfig2::GetConfig。 |
|
屬性的數據類型:String 共用資料夾目錄的名稱。 |
|
屬性的數據類型:String CA 支援的範本清單。 |
[in] PropIndex
如果 PropId 參數已編製索引,則擷取屬性值時要使用的以零起始的索引。 如果未編制 PropId 的索引,則會忽略此值。
[in] PropType
指定屬性的類型,該屬性會在 PropId 資料表的 Meaning 資料行中指出。 類型可以是下列其中一種類型。
值 | 意義 |
---|---|
|
帶正負號的長數據 |
|
保留供日後使用) 的日期/時間 ( |
|
二進位資料 |
|
Unicode 字串數據 |
[in] Flags
下列旗標可用來指定傳回屬性值的格式;這些旗標只有二進位數據 (的意義,例如憑證、憑證鏈結或 證書吊銷清單) ,否則會忽略。
[out] pvarPropertyValue
接收所要求屬性值之緩衝區的指標。 呼叫 VariantClear 時,呼叫者必須負責釋放此資源。
傳回值
C++
傳回值為 HRESULT。 S_OK值表示方法成功。VB
要求的屬性值。備註
當屬性標識碼CR_PROP_BASECRLPUBLISHSTATUS或CR_PROP_DELTACRLPUBLISHSTATUS時,會傳回下列值。 這些值可加以合併。
值 | Description |
---|---|
CPF_BADURL_ERROR | URL 無效。 |
CPF_BASE | 已發行基底 CRL。 |
CPF_CASTORE_ERROR | CA 存放區錯誤防止發行集。 |
CPF_COMPLETE | 已發佈完整的CRL。 |
CPF_DELTA | 已發行差異CRL。 |
CPF_FILE_ERROR | 檔案錯誤已防止發行集。 |
CPF_FTP_ERROR | FTP 錯誤防止發行集。 |
CPF_HTTP_ERROR | HTTP 錯誤防止發行集。 |
CPF_LDAP_ERROR | LDAP 錯誤導致發行集無法使用。 |
CPF_MANUAL | CRL 已手動發佈。 |
CPF_SHADOW | 已發行空的差異 CRL,以及新的 BASE CRL。 |
CPF_SIGNATURE_ERROR | 簽章錯誤已防止發行集。 |
如需擷取CRL的範例,請參閱擷取 證書吊銷清單。
範例
下列範例顯示擷取 CA 的簽章憑證。 此範例假設 ICertAdmin2 介面指標有效。
BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
printf("Failed to allocate memory for bstrCA\n");
exit(1);
}
VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
CR_PROP_CASIGCERT,
0,
PROPTYPE_BINARY,
CV_OUT_BASE64HEADER,
&var1);
if (FAILED(hr))
{
printf("Failed GetCAProperty\n");
SysFreeString(bstrCA);
exit(1); // Or other error action.
}
// Use the property as needed.
// ...
// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 都不支援 |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | certadm.h (包含 Certsrv.h) |
程式庫 | Certidl.lib |
Dll | Certadm.dll |