다음을 통해 공유


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
익명 인증.

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

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

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

X509AuthKerberos
Kerberos 인증입니다.

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

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

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

[in] strCredential

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

[in] strPassword

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

반환 값

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

설명

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

strCredentialstrPassword 인수는 다음 표와 같이 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