다음을 통해 공유


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( 인증 기관 ) 이름 부분은 인증서 서비스 설정 프로세스 중에 입력한 정확한 텍스트입니다. 이 텍스트는 파일 이름(예: 인증서 해지 목록) 또는 레지스트리 키에 있는 CA 이름의 형식과 다를 수 있습니다. 파일 이름 및 레지스트리 키는 삭제된 버전의 CA 이름을 사용하기 때문입니다.

CA 이름을 삭제하는 프로세스는 파일 이름, 레지스트리 키 이름 또는 고유 이름 값에 대해 불법이거나 인증서 서비스와 관련된 이유로 불법인 문자를 제거하는 데 필요합니다. 삭제 프로세스에서 일반 이름의 잘못된 문자는 형식의 5자 표현으로 변환됩니다.여기서 ! 는 이스케 이프 문자로 사용되고 xxxx는 변환할 문자를 고유하게 식별하는 4개의 16진수 숫자를 나타냅니다.

예를 들어 숫자 기호(#)는 Active Directory의 고유 이름에서 허용되지 않습니다. 설치 중에 입력한 CA 이름이 YourName# 면 삭제된 CA 이름은 !0023YourName입니다.

설치하는 동안 CA의 일반 이름으로 입력한 다음 문자는 로 변환됩니다.삭제 프로세스 중에 xxxx 형식입니다. 이 목록은 변경될 수 있습니다.

Name 문자 !xxxx 형식의 값
앰퍼샌드 & !0026
아포스트로피 ' !0027
별표 * !002a
백슬래시 \ !005c
왼쪽 중괄호 { !007b
오른쪽 중괄호 } !007d
왼쪽 대괄호 [ !005b
오른쪽 대괄호 ] !005d
캐럿 ^ !005e
콜론 : !003a
쉼표 , !002c
등호 기호 = !003d
느낌표 ! !0021
그레이브 악센트 ` !0060
부호보다 큼 > !003e
보다 작음 기호 < !003c
숫자 기호 # !0023
괄호 ( !0028
닫는 괄호 ) !0029
백분율 % !0025
파이프 | !007c
더하기 기호 + !002b
물음표 ? !003f
물음표 " !0022
세미콜론 ; !003b
슬래시 기호 / !002f
 

모든 인쇄되지 않는 문자와 7비트를 사용하지 않는 모든 유니코드 문자도 로 변환됩니다 .xxxx 형식입니다.

삭제된 이름이 64자 디렉터리 서비스 RDN(상대 고유이름)에 대해 너무 길면 삭제된 짧은 이름이 생성됩니다. 삭제된 짧은 이름은 삭제된 전체 이름의 해시 와 함께 잘리고 추가된 삭제된 이름으로 구성됩니다. 삭제된 약식 이름은 (123)과 같은 CRL( 인증서 해지 목록 ) 접미사를 포함하도록 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 포함)
라이브러리 Certidl.lib
DLL Certcli.dll

추가 정보

CCertConfig

ICertConfig

ICertView2::OpenConnection