ICertGetConfig::GetConfig メソッド (certcli.h)
GetConfig メソッドは、Certificate Services サーバーの構成文字列を取得します。
構成文字列は、バックスラッシュ (\) で区切られたサーバー名と 証明機関 (CA) 名です。例: ServerName\CAName。 この構成文字列は、特定の Certificate Services サーバーを明確に参照するために使用できます。 詳細については、「解説」を参照してください。
構文
HRESULT GetConfig(
[in] LONG Flags,
[out] BSTR *pstrOut
);
パラメーター
[in] Flags
使用する CA を指定する値。 このパラメーターには、次の値のいずれかを指定できます。
[out] pstrOut
構成を含む BSTR へのポインター。 構成の使用が完了したら、 SysFreeString 関数を呼び出して pbstrOut を解放します。
戻り値
関数が成功した場合、戻り値はS_OK。
メソッドが失敗した場合、戻り値はエラーを示す HRESULT です。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。
注釈
この関数が返す構成文字列の 証明機関 (CA) 名部分は、Certificate Services のセットアップ プロセス中に入力された正確なテキストです。 このテキストは、ファイル名 ( 証明書失効リストなど) またはレジストリ キーに含まれる CA 名の形式とは異なる場合があることに注意してください。 これは、ファイル名とレジストリ キーで CA 名の サニタイズされた バージョンが使用されるためです。
CA 名をサニタイズするプロセスは、ファイル名、レジストリ キー名、または識別名の値に対して無効な文字、または証明書サービスに固有の理由で無効な文字を削除するために必要です。 サニタイズ プロセスでは、共通名の無効な文字は、 形式で 5 文字の表現に変換されます 。xxxx。感嘆符 (!) がエスケープ文字として使用され、 xxxx は変換する文字を一意に識別する 4 つの 16 進数を表します。
たとえば、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) に対して長すぎる場合に生成されます。 サニタイズされた短い名前は、サニタイズされた名前が切り捨てられ、完全なサニタイズされた名前の ハッシュ が付加されて構成されます。 サニタイズされた短い名前では、 証明書失効リスト (CRL) サフィックス (123) などの 64 文字の一部が予約されます。
このメソッドによって返される構成文字列の CA 名部分は、セットアップ時に入力された元のテキストです。 パラメーターとして CA 名を必要とする Certificate Services メソッドは、最初に入力した CA 名を受け入れることに注意してください。 たとえば、CA 名 #YourName の場合、
ICertView2::OpenConnection メソッドは、パラメーターの # CA 部分として YourName を受け入れます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | certcli.h (Certsrv.h を含む) |
Library | Certidl.lib |
[DLL] | Certcli.dll |