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( 인증 기관 ) 이름 부분은 인증서 서비스 설정 프로세스 중에 입력한 정확한 텍스트입니다. 이 텍스트는 파일 이름(예: 인증서 해지 목록) 또는 레지스트리 키에 있는 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 |