Share via


ICertGetConfig::GetConfig 方法 (certcli.h)

GetConfig 方法會擷取憑證服務伺服器的組態字串。

組態字串是伺服器名稱和 證書頒發機構單位 , (CA) 名稱,並以反斜杠 (\) 分隔;例如: ServerName\CAName。 此組態字串可用來明確參考特定的憑證服務伺服器。 如需詳細資訊,請參閱<備註>。

語法

HRESULT GetConfig(
  [in]  LONG Flags,
  [out] BSTR *pstrOut
);

參數

[in] Flags

值,指定要使用的 CA。 此參數可以是下列其中一個值。

意義
CC_DEFAULTCONFIG
0x00000000
擷取預設 CA。
CC_FIRSTCONFIG
0x00000002
傳回第一個 CA。
CC_LOCALACTIVECONFIG
0x00000004
如果本機 CA 正在執行,則擷取本機 CA。
CC_LOCALCONFIG
0x00000003
擷取本機 CA。
CC_UIPICKCONFIG
0x00000001
顯示使用者介面 (UI) ,讓用戶選取 CA。
CC_UIPICKCONFIGSKIPLOCALCA
0x00000005
顯示允許用戶選取 CA 的 UI。 UI 會排除任何本機 CA。 當從屬 CA 憑證要求提交至目前 CA 以外的 CA 時,此排除在次級 CA 憑證更新期間很有用。

[out] pstrOut

包含組態的 BSTR 指標。 當您完成設定時,請呼叫 SysFreeString 函式以釋放 pbstrOut

傳回值

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

如果方法失敗,則傳回值為表示錯誤的 HRESULT 。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

備註

證書頒發機構單位 (CA) 此函式傳回之組態字串的名稱部分,是在憑證服務設定程式期間輸入的確切文字。 請注意,此文字可能與檔名 (中找到的 CA 名稱形式不同,例如證書 吊銷清單) 或登錄機碼中。 這是因為檔名和登錄機碼使用 CA 名稱的 清理 版本。

必須清除 CA 名稱的程式,才能移除檔名、登錄機碼名稱或辨別名稱值不合法的字元,或基於憑證服務的特定原因而不合法。 在清理程式中,通用名稱中的任何不合法字元會轉換成格式為五個字元的表示 法!xxxx,其中驚嘆號 () 做為逸出字元, 而xxxx 代表四個唯一識別要轉換之字元的十六進位數位。

例如,Active Directory 目錄服務中的辨別名稱不允許數位符號 (#) 。 如果在安裝期間輸入的 CA 名稱是 #YourName,則清理的 CA 名稱會是 !0023YourName

如果在安裝期間針對 CA 的一般名稱輸入下列字元,則會轉換成 清理程式期間的xxxx格式。 此清單會隨時變動。

字元 !xxxx 格式的值
< !003c
> !003e
" !0022
/ !002f
\ !005c
: !003a
| !007c
? !003f
* !002a
# !0023
, !002c
+ !002b
; !003b
! !0021
 

任何非列印字元和不是七位的所有 Unicode 字元也會轉換成 xxxx 格式。

當 64 個字元的目錄服務相對辨別名稱 (RDN) 時,就會產生清理的簡短名稱。 清理的簡短名稱是由已截斷的清理名稱所組成,並以完整清理名稱的 哈希 附加。 清理的簡短名稱會保留一些 64 個字元,以包含證書吊銷 清單 , (CRL) 後綴,例如 (123) 。

這個方法所傳回之組態字串的 CA 名稱部分是安裝期間輸入的原始文字。 請注意,需要 CA 名稱做為參數的憑證服務方法會接受原本輸入的 CA 名稱。 例如,針對 CA 名稱 #YourName
ICertView2::OpenConnection 方法接受 #YourName 做為參數的 CA 部分。

規格需求

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

另請參閱

ICertConfig2::GetConfig

ICertGetConfig

ICertView2::OpenConnection