ICertConfig::GetField 方法 (certcli.h)

GetField 方法从配置数据库的当前记录中获取特定字段。 此方法首先在 ICertConfig 接口中定义。

语法

HRESULT GetField(
  [in]          const BSTR strFieldName,
  [out, retval] BSTR       *pstrOut
);

参数

[in] strFieldName

指定要返回的字段的名称。 此参数可以是字段名称的以下有效字符串之一, (请注意,某些证书颁发机构可能不会为每个字段) 提供数据。

含义
颁发机构
引用证书颁发机构 (CA) 名称。
CommonName
服务器的公用名。
Config
引用计算机\CA 名称。
国家/地区
国家/地区。
说明
有关服务器 (的描述性注释将替换过时的“注释”) 。
ExchangeCertificate
包含交换证书的文件的名称 (仅适用于证书服务 1.0) 。
标志
表示找到 CA 信息的位置的字符串。 有关详细信息,请参阅“备注”。
本地性
城市或城镇。
组织
组织。
OrgUnit
组织单位。
SanitizedName
根据 GetConfig 中所述的规则进行清理的 CA 名称。
SanitizedShortName
根据 GetConfig 中所述的规则进行清理和缩短的 CA 名称。
Server
引用计算机名称。
ShortName
SanitizedShortName,但使用“!xxx”序列(如 GetConfig 中所述)翻译回原始文本。
SignatureCertificate
包含 CA 证书的文件的名称 (也称为 CA 签名证书) ;这可以是根证书,也可能不是 根证书
State
省/自治区/直辖市。
WebEnrollmentServers
Active Directory 中特定 CA 配置的证书注册 Web 服务 URL 数组。

Windows Vista 和 Windows Storage Server 2003: 不支持此字段。

[out, retval] pstrOut

指向从字段接收数据的 BSTR 的指针。 使用完 BSTR 后,通过调用 SysFreeString 函数释放 pbstrOut

返回值

C++

如果方法成功,该方法将返回S_OK。

如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

VB

返回值是表示字段数据的字符串。

注解

此方法返回指定字段的字段数据。

strFieldName 参数中指定“Flags”时,为标志字段检索到的数据是一个字符串,可通过 C 库函数 _wtoi转换为整数。 生成的整数表示一个位字段,可以检查该位字段以确定是否设置了CAIF_DSENTRY标志和CAIF_SHAREDFOLDERENTRY。 如果设置了CAIF_DSENTRY (0x00000001) ,则 CA 的信息包含在目录服务中。 如果设置了CAIF_SHAREDFOLDERENTRY (0x00000002) ,则共享文件夹中包含 CA 的信息。 请注意,可以设置其中一个或两个标志。

示例

    BSTR  bstrFieldName = NULL;
    BSTR  bstrFieldValue = NULL;
    HRESULT    hr;

    // Specify the field to retrieve, for example, "CommonName".
    bstrFieldName = SysAllocString(L"<FIELDNAMEHERE>");
    if (NULL == bstrFieldName)
    {
        printf("Memory allocation failed for bstrFieldName.\n");
        goto error;
    }

    // pConfig is a previously instantiated ICertConfig object.
    hr = pConfig->GetField(bstrFieldName, &bstrFieldValue);
    if (FAILED(hr))
    {
        printf("Failed GetField - [%x]\n", hr);
        goto error;
    }
    else
        printf("GetField value for %ws is: %ws\n", 
            bstrFieldName, bstrFieldValue );

error:

    if (bstrFieldName)
        SysFreeString(bstrFieldName);

    if (bstrFieldValue)
        SysFreeString(bstrFieldValue);

要求

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

另请参阅

CCertConfig

ICertConfig