Share via


CredPackAuthenticationBufferW 함수(wincred.h)

CredPackAuthenticationBuffer 함수는 문자열 사용자 이름과 암호를 인증 버퍼로 변환합니다.

Windows 8 및 Windows Server 2012부터 CredPackAuthenticationBuffer 함수는 ID 자격 증명을 SEC_WINNT_AUTH_IDENTITY_EX2 구조인 인증 버퍼로 변환합니다. 이 버퍼는 LsaLogonUser, AcquireCredentialsHandle 또는 기타 ID 공급자 인터페이스에 전달할 수 있습니다.

구문

CREDUIAPI BOOL CredPackAuthenticationBufferW(
  [in]      DWORD  dwFlags,
  [in]      LPWSTR pszUserName,
  [in]      LPWSTR pszPassword,
  [out]     PBYTE  pPackedCredentials,
  [in, out] DWORD  *pcbPackedCredentials
);

매개 변수

[in] dwFlags

자격 증명을 압축하는 방법을 지정합니다. 다음 플래그의 조합일 수 있습니다.

의미
CRED_PACK_PROTECTED_CREDENTIALS
호출자의 로그온 세션의 프로세스에서만 암호를 해독할 수 있도록 자격 증명을 암호화합니다.
CRED_PACK_WOW_BUFFER
WOW 버퍼에서 자격 증명을 암호화합니다.
CRED_PACK_GENERIC_CREDENTIALS
CRED_GENERIC 버퍼에서 자격 증명을 암호화합니다.
CRED_PACK_ID_PROVIDER_CREDENTIALS
온라인 ID의 자격 증명을 SEC_WINNT_AUTH_IDENTITY_EX2 구조로 암호화합니다. CRED_PACK_GENERIC_CREDENTIALS 및 CRED_PACK_ID_PROVIDER_CREDENTIALS 설정되지 않은 경우 KERB_INTERACTIVE_LOGON 버퍼에서 자격 증명을 암호화합니다.

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008: 이 값은 지원되지 않습니다.

[in] pszUserName

변환할 사용자 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 도메인 사용자의 경우 문자열은 다음 형식이어야 합니다.

Domainname\사용자

온라인 ID의 경우 자격 증명이 일반 텍스트 암호인 경우 사용자 이름 형식은 ProviderName\UserName입니다. 자격 증명이 SEC_WINNT_AUTH_IDENTITY_EX2 구조체인 경우 사용자 이름은 SspiEncodeAuthIdentityAsStrings에 대한 함수 호출의 UserName 매개 변수 출력인 인코딩된 문자열입니다.

스마트 카드 또는 인증서 자격 증명의 경우 사용자 이름은 CertCredential 옵션을 사용하여 CredMarshalCredential에 대한 함수 호출의 출력인 인코딩된 문자열입니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008 및 Windows Vista: 온라인 ID는 지원되지 않습니다.

[in] pszPassword

변환할 암호를 지정하는 null로 끝나는 문자열에 대한 포인터입니다.

SEC_WINNT_AUTH_IDENTITY_EX2 자격 증명의 경우 암호는 SspiEncodeAuthIdentityAsStrings에 대한 함수 호출의 ppszPackedCredentialsString 출력에 있는 인코딩된 문자열입니다.

스마트 카드 자격 증명의 경우 스마트 카드 PIN입니다.

Windows Server 2008 R2, Windows 7, Windows Server 2008 및 Windows Vista: 온라인 ID는 지원되지 않습니다.

[out] pPackedCredentials

출력 시 압축된 인증 버퍼를 수신하는 바이트 배열에 대한 포인터입니다. 이 매개 변수는 pcbPackedCredentials 매개 변수에서 필요한 버퍼 크기를 수신하는 NULL일 수 있습니다.

[in, out] pcbPackedCredentials

pPackedCredentials 버퍼의 크기(바이트)를 지정하는 DWORD 값에 대한 포인터입니다. 출력에서 버퍼의 크기가 충분하지 않은 경우 pPackedCredentials 버퍼의 필요한 크기(바이트)를 지정합니다.

반환 값

함수가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.

확장된 오류 정보는 GetLastError 함수를 호출합니다. 이 함수는 다음 오류 코드를 반환할 수 있습니다.

반환 코드 설명
ERROR_INSUFFICIENT_BUFFER
pPackedCredentials에서 제공하는 버퍼가 너무 작습니다.

설명

참고

wincred.h 헤더는 CRedPackAuthenticationBuffer를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincred.h
라이브러리 Credui.lib
DLL Credui.dll