ICertConfig::GetConfig メソッド (certcli.h)
GetConfig メソッドは、Certificate Services サーバーの構成文字列を取得します。 このメソッドは、最初に ICertConfig インターフェイスで定義されました。
構成文字列は、バックスラッシュ (\) で区切られたサーバー名と 証明機関 名です。例: ServerName\CAName。 この構成文字列は、特定の Certificate Services サーバーを明確に参照するために使用できます。 詳細については、「解説」を参照してください。
構文
HRESULT GetConfig(
[in] LONG Flags,
[out] BSTR *pstrOut
);
パラメーター
[in] Flags
使用する証明機関を指定する値。 このパラメーターには、次の値のいずれかを指定できます。
[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 |