ICertRequest3::SetCredential 메서드(certcli.h)

SetCredential 메서드는 인증서 등록 웹 서비스에 문의하는 데 사용되는 자격 증명을 설정합니다.

구문

HRESULT SetCredential(
  [in] LONG                    hWnd,
  [in] X509EnrollmentAuthFlags AuthType,
  [in] BSTR                    strCredential,
  [in] BSTR                    strPassword
);

매개 변수

[in] hWnd

부모 창에 대한 핸들입니다.

자격 증명을 얻으려면 UI가 표시되는 hWnd 매개 변수를 설정해야 합니다.

인증서 기반 권한 부여의 경우 자격 증명을 가져오는 데 UI 프롬프트가 필요한 경우(예: 자격 증명이 스마트 카드 있고 핀 프롬프트가 필요한 경우) 핸들이 사용됩니다.

Kerberos, 익명 또는 사용자 이름 및 암호 인증을 사용하는 경우 이 매개 변수는 무시됩니다.

[in] AuthType

인증 유형을 지정하는 X509EnrollmentAuthFlags 열거형의 값입니다.

값 의미
X509AuthAnonymous
익명 인증.

strCredential 및 strPassword 매개 변수를 NULL 또는 빈 문자열로 설정합니다.

X509AuthCertificate
로컬 컴퓨터에 설치된 클라이언트 인증 인증서입니다. 인증서에는 프라이빗 키와 연결된 공개 키가 포함되어 있습니다(인증서에 포함되지 않음). 인증서는 서버에서 클라이언트의 ID를 확인하는 데 사용됩니다.

strCredential 매개 변수에는 호출자를 인증하기 위해 인증서 등록 웹 서비스에 전달할 인증서의 이진 20바이트 SHA-1 해시가 포함되어 있습니다. strPassword 매개 변수를 NULL 또는 빈 문자열로 설정합니다. strCredential 매개 변수는 관련 개인 인증서 저장소에 설치된 인증서를 참조해야 하며 호출자가 액세스할 수 있는 연결된 프라이빗 키가 있어야 합니다.

X509AuthKerberos
Kerberos 인증입니다.

strCredential 및 strPassword 매개 변수를 NULL 또는 빈 문자열로 설정합니다.

X509AuthUsername
일반 텍스트 사용자 이름 및 암호 인증. 사용자 이름과 암호는 클라이언트의 자격 증명 모음에 저장될 때 암호화됩니다.

strCredential 및 strPassword 매개 변수에는 호출자를 인증하기 위해 인증서 등록 웹 서비스에서 지원하는 사용자 이름 문자열 및 일반 텍스트 암호가 포함됩니다. 등록 서비스 연결은 항상 SSL( Secure Sockets Layer Protocol )을 사용하므로 유선으로 전송될 때 암호가 암호화됩니다.

[in] strCredential

자격 증명을 포함하는 문자열입니다.

[in] strPassword

암호를 포함하는 문자열입니다.

반환 값

반환 코드 설명
E_INVALIDARG
AuthType 매개 변수는 X509AuthKerberos여야 합니다.

설명

ICertRequest2::Submit 메서드를 호출하기 전에 SetCredential 메서드를 호출해야 합니다.

strCredential 및 strPassword 인수는 다음 표와 같이 AuthType 매개 변수에 지정된 값에 따라 변경됩니다.

AuthType 매개 변수 strCredential 매개 변수 strPassword 매개 변수
X509AuthAnonymous NULL NULL
X509AuthCertificate 인증서의 20바이트 SHA-1 해시(지문) NULL
X509AuthKerberos NULL NULL
X509AuthUsername 인증서 등록 웹 서비스에서 인식하는 일반 텍스트 사용자 이름 사용자 이름과 연결된 일반 텍스트 암호

요구 사항

요구 사항 값
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 certcli.h(Certsrv.h 포함)
라이브러리 Certidl.lib
DLL Certcli.dll

추가 정보

CCertRequest

ICertRequest3