Share via


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 名稱。
伺服器
參照計算機名稱。
ShortName
SanitizedShortName,但具有 '!xxx' 序列,如 GetConfig 中所述,會轉譯回原始文字。
SignatureCertificate
包含 CA 憑證的檔名 (也稱為 CA 簽章憑證) ;這可能不是 跟證書
狀態
州或省。
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)
程式庫 Certidl.lib
Dll Certcli.dll

另請參閱

CCertConfig

ICertConfig