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(如果它正在运行)。
CC_LOCALCONFIG
0x00000003
检索本地 CA。
CC_UIPICKCONFIG
0x00000001
显示允许用户选择 CA 的用户界面 (UI) 。
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
 

任何非打印字符和所有不是 7 位的 Unicode 字符也会转换为 xxxx 格式。

当经过清理的名称对于 64 个字符的目录服务相对可分辨名称 (RDN) 时,将生成经过清理的短名称。 经过清理的短名称包含截断并追加完整清理名称的 哈希 。 已清理的短名称保留 64 个字符中的一些字符,以包含 证书吊销列表 (CRL) 后缀,例如 (123) 。

此方法返回的配置字符串的 CA 名称部分是在安装过程中输入的原始文本。 请注意,需要 CA 名称作为参数的证书服务方法接受最初输入的 CA 名称。 例如,对于 CA 名称 #YourName,为
ICertView2::OpenConnection 方法接受 #YourName 作为参数的 CA 部分。

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certcli.h (包括 Certsrv.h)
Library Certidl.lib
DLL Certcli.dll

另请参阅

ICertConfig2::GetConfig

ICertGetConfig

ICertView2::OpenConnection