ICertConfig::GetConfig メソッド (certcli.h)

GetConfig メソッドは、Certificate Services サーバーの構成文字列を取得します。 このメソッドは、最初に ICertConfig インターフェイスで定義されました。

構成文字列は、バックスラッシュ (\) で区切られたサーバー名と 証明機関 名です。例: ServerName\CAName。 この構成文字列は、特定の Certificate Services サーバーを明確に参照するために使用できます。 詳細については、「解説」を参照してください。

構文

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

パラメーター

[in] Flags

使用する証明機関を指定する値。 このパラメーターには、次の値のいずれかを指定できます。

意味
CC_DEFAULTCONFIG
0x00000000
既定の証明機関を取得します。
CC_FIRSTCONFIG
0x00000002
最初の証明機関を返します。
CC_LOCALACTIVECONFIG
0x00000004
ローカル証明機関が実行されている場合は、その証明機関を取得します。
CC_LOCALCONFIG
0x00000003
ローカル証明機関を取得します。
CC_UIPICKCONFIG
0x00000001
ユーザーが証明機関を選択できるようにするユーザー インターフェイスを表示します。
CC_UIPICKCONFIGSKIPLOCALCA
0x00000005
ユーザーが証明機関を選択できるようにするユーザー インターフェイスを表示します。 UI では、ローカル証明機関は除外されます。 この除外は、下位証明機関の証明書要求が現在の証明機関以外の証明機関に送信されるときに、下位証明機関の証明書の更新時に役立ちます。

[out] pstrOut

構成を含む BSTR へのポインター。 構成の使用が完了したら、 SysFreeString 関数を呼び出して pbstrOut を解放します。

戻り値

C++

メソッドが成功した場合、メソッドは S_OKを返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。

VB

戻り値は、構成を含む文字列です。

注釈

この関数が返す構成文字列の 証明機関 (CA) 名部分は、Certificate Services のセットアップ プロセス中に入力された正確なテキストです。 このテキストは、ファイル名 ( 証明書失効リストなど) またはレジストリ キーに含まれる CA 名の形式とは異なる場合があることに注意してください。 これは、ファイル名とレジストリ キーで CA 名の サニタイズされた バージョンが使用されるためです。

CA 名をサニタイズするプロセスは、ファイル名、レジストリ キー名、または識別名の値に対して無効な文字、または証明書サービスに固有の理由で無効な文字を削除するために必要です。 サニタイズ プロセスでは、共通名の無効な文字は、 形式で 5 文字の表現に変換されます xxxxはエスケープ 文字として使用され、 xxxx は変換する文字を一意に識別する 4 桁の 16 進数を表します。

たとえば、Active Directory の識別名では、番号記号 (#) は使用できません。 セットアップ中に入力した CA 名が #YourName の場合、サニタイズされた CA 名は !0023YourName になります

セットアップ中に CA の共通名に次の文字を入力すると、 は に変換されます。サニタイズ プロセス中の xxxx 形式。 この一覧は変更されることがあります。

名前 文字 !xxxx 形式の値
アンパサンド & !0026
アポストロフィ ' !0027
Asterisk * !002a
円記号 \ !005c
左中かっこ { !007b
右中かっこ } !007d
左の角かっこ [ !005b
右の角かっこ ] !005d
キャレット ^ !005e
コロン : !003a
コンマ , !002c
等号 = !003d
感嘆符 ! !0021
グレーブ アクセント ` !0060
大なり > !003e
小なり < !003c
番号記号 # !0023
左かっこ ( !0028
閉じかっこ ) !0029
Percent % !0025
Pipe | !007c
プラス記号 + !002b
疑問符 ? !003f
引用符 " !0022
セミコロン ; !003b
スラッシュ マーク / !002f
 

印刷されない文字と、7 ビットではないすべての Unicode 文字も に変換されます xxxx 形式。

サニタイズされた短い名前は、 サニタイズされた名前 が 64 文字のディレクトリ サービス の相対識別名 (RDN) に対して長すぎる場合に生成されます。 サニタイズされた短い名前は、サニタイズされた名前が切り捨てられ、完全なサニタイズされた名前の ハッシュ が付加されて構成されます。 サニタイズされた短い名前では、 証明書失効リスト (CRL) サフィックス ((123) など) を含む 64 文字の一部が予約されます。

このメソッドによって返される構成文字列の証明機関名の部分は、セットアップ時に入力された元のテキストです。 パラメーターとして証明機関名を必要とする Certificate Services メソッドは、最初に入力した証明機関名を受け入れることに注意してください。 たとえば、証明機関名 #YourName の場合
ICertView2::OpenConnection メソッドは、パラメーターの#証明機関部分として YourName を受け入れます。

次の例は、このメソッドを使用して既定の証明機関構成文字列を取得する方法を示しています。


    ICertConfig2 * pConfig = NULL;
    BSTR  bstrConfig = NULL; //Contains CA configuration name
    HRESULT    hr;

    hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
    if (FAILED(hr))
    {
        printf("Failed CoInitializeEx - [%x]\n", hr);
        goto error;
    }

    // Create an instance of the CertConfig object.
    hr = CoCreateInstance( CLSID_CCertConfig,
                           NULL,
                           CLSCTX_INPROC_SERVER,
                           IID_ICertConfig2,
                           (void **)&pConfig);
    if (FAILED(hr))
    {
        printf("Failed CoCreateInstance - pConfig [%x]\n", hr);
        goto error;
    }

    // Retrieve the default CA configuration string.
    hr = pConfig->GetConfig(CC_DEFAULTCONFIG, &bstrConfig);
    if (FAILED(hr))
    {
        printf("Failed GetConfig - [%x]\n", hr);
        goto error;
    }
    else
        printf("GetConfig returned: %ws\n", bstrConfig );

error:

    // Done processing.
    if (pConfig)
        pConfig->Release();

    if (bstrConfig)
        SysFreeString(bstrConfig);

    CoUninitialize();

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certcli.h (Certsrv.h を含む)
Library Certidl.lib
[DLL] Certcli.dll

こちらもご覧ください

CCertConfig

ICertConfig

ICertView2::OpenConnection