CredUIPromptForWindowsCredentialsA 함수(wincred.h)

CredUIPromptForWindowsCredentials 함수는 사용자가 로컬 컴퓨터에 설치된 자격 증명 공급자를 사용하여 자격 증명 정보를 제공할 수 있는 구성 가능한 대화 상자를 만들고 표시합니다.

구문

CREDUIAPI DWORD CredUIPromptForWindowsCredentialsA(
  [in, optional]      PCREDUI_INFOA pUiInfo,
  [in]                DWORD         dwAuthError,
  [in, out]           ULONG         *pulAuthPackage,
  [in, optional]      LPCVOID       pvInAuthBuffer,
  [in]                ULONG         ulInAuthBufferSize,
  [out]               LPVOID        *ppvOutAuthBuffer,
  [out]               ULONG         *pulOutAuthBufferSize,
  [in, out, optional] BOOL          *pfSave,
  [in]                DWORD         dwFlags
);

매개 변수

[in, optional] pUiInfo

이 함수가 표시하는 대화 상자의 모양을 사용자 지정하기 위한 정보가 포함된 CREDUI_INFO 구조체에 대한 포인터입니다.

CREDUI_INFO 구조체의 hwndParent 멤버가 NULL이 아닌 경우 이 함수는 부모 창 가운데에 모달 대화 상자를 표시합니다.

CREDUI_INFO 구조체의 hwndParent 멤버가 NULL이면 함수는 화면 가운데에 대화 상자를 표시합니다.

이 함수는 CREDUI_INFO 구조체의 hbmBanner 멤버를 무시합니다.

[in] dwAuthError

대화 상자에 표시되는 Winerror.h에 정의된 Windows 오류 코드입니다. 이전에 수집한 자격 증명이 유효하지 않은 경우 호출자는 이 매개 변수를 사용하여 자격 증명(예: Winlogon)을 수집한 API의 오류 메시지를 이 함수에 전달합니다. 해당 오류 메시지의 서식이 지정되어 대화 상자에 표시됩니다. 이 매개 변수의 값을 0으로 설정하여 오류 메시지를 표시하지 않습니다.

[in, out] pulAuthPackage

입력에서 이 매개 변수의 값은 pvInAuthBuffer 버퍼의 자격 증명이 serialize되는 인증 패키지를 지정하는 데 사용됩니다. pvInAuthBuffer 값이 NULL이고 CREDUIWIN_AUTHPACKAGE_ONLY 플래그가 dwFlags 매개 변수에 설정된 경우 지정된 인증 패키지에 대한 자격 증명을 직렬화할 수 있는 자격 증명 공급자만 열거됩니다.

입력에서 이 매개 변수에 사용할 적절한 값을 얻으려면 LsaLookupAuthenticationPackage 함수를 호출하고 해당 함수의 AuthenticationPackage 매개 변수 값을 사용합니다.

출력에서 이 매개 변수는 ppvOutAuthBuffer 버퍼의 자격 증명이 serialize되는 인증 패키지를 지정합니다.

[in, optional] pvInAuthBuffer

대화 상자에서 자격 증명 필드를 채우는 데 사용되는 자격 증명 BLOB에 대한 포인터입니다. 자격 증명 필드를 비워 두려면 이 매개 변수의 값을 NULL 로 설정합니다.

[in] ulInAuthBufferSize

pvInAuthBuffer 버퍼의 크기(바이트)입니다.

[out] ppvOutAuthBuffer

출력에서 자격 증명 BLOB을 지정하는 포인터의 주소입니다. Kerberos, NTLM 또는 Negotiate 자격 증명의 경우 CredUnPackAuthenticationBuffer 함수를 호출하여 이 BLOB을 자격 증명의 문자열 표현으로 변환합니다.

자격 증명 BLOB 사용을 마쳤으면 SecureZeroMemory 함수를 호출하여 메모리에서 지우고 CoTaskMemFree 함수를 호출하여 해제합니다.

[out] pulOutAuthBufferSize

ppvOutAuthBuffer 버퍼의 크기(바이트)입니다.

[in, out, optional] pfSave

입력에서 이 함수가 표시하는 대화 상자에서 검사 저장 상자를 선택할지 여부를 지정하는 부울 값에 대한 포인터입니다. 출력에서 이 매개 변수의 값은 사용자가 대화 상자에서 제출 단추를 클릭할 때 저장 검사 상자를 선택했는지 여부를 지정합니다. 저장 검사 상자를 무시하려면 이 매개 변수를 NULL로 설정합니다.

CREDUIWIN_CHECKBOX 플래그가 dwFlags 매개 변수에 설정되지 않은 경우 이 매개 변수는 무시됩니다.

[in] dwFlags

이 함수의 동작을 지정하는 값입니다. 이 값은 다음 값 중 하나 이상의 비트 OR 조합일 수 있습니다.

의미
CREDUIWIN_GENERIC
0x1
호출자가 자격 증명 공급자가 사용자 이름과 암호를 일반 텍스트로 반환하도록 요청합니다.

이 값은 SECURE_PROMPT 결합할 수 없습니다.

CREDUIWIN_CHECKBOX
0x2
저장 검사 상자가 대화 상자에 표시됩니다.
CREDUIWIN_AUTHPACKAGE_ONLY
0x10
pulAuthPackage 매개 변수로 지정된 인증 패키지를 지원하는 자격 증명 공급자만 열거해야 합니다.

이 값은 CREDUIWIN_IN_CRED_ONLY 결합할 수 없습니다.

CREDUIWIN_IN_CRED_ONLY
0x20
pulAuthPackage 매개 변수로 지정된 인증 패키지에 대한 pvInAuthBuffer 매개 변수로 지정된 자격 증명만 열거해야 합니다.

이 플래그가 설정되고 pvInAuthBuffer 매개 변수가 NULL이면 함수가 실패합니다.

이 값은 CREDUIWIN_AUTHPACKAGE_ONLY 결합할 수 없습니다.

CREDUIWIN_ENUMERATE_ADMINS
0x100
자격 증명 공급자는 관리자만 열거해야 합니다. 이 값은 UAC(사용자 계정 컨트롤) 용도로만 사용됩니다. 외부 호출자는 이 플래그를 설정하지 않는 것이 좋습니다.
CREDUIWIN_ENUMERATE_CURRENT_USER
0x200
pulAuthPackage 매개 변수로 지정된 인증 패키지의 들어오는 자격 증명만 열거해야 합니다.
CREDUIWIN_SECURE_PROMPT
0x1000
자격 증명 대화 상자는 보안 데스크톱에 표시되어야 합니다. 이 값은 CREDUIWIN_GENERIC 결합할 수 없습니다.

Windows Vista: 이 값은 WINDOWS Vista SP1부터 지원됩니다.

CREDUIWIN_PREPROMPTING
0x2000
자격 증명 대화 상자는 SspiPromptForCredentials 함수에 의해 호출되고 클라이언트는 이전 핸드셰이크 전에 메시지가 표시됩니다. SSPIPFC_NO_CHECKBOX pvInAuthBuffer 매개 변수에 전달되는 경우 자격 증명 공급자는 검사 상자를 표시해서는 안 됩니다.

Windows Vista: 이 값은 WINDOWS Vista SP1부터 지원됩니다.

0x40000
자격 증명 공급자는 AAD 기관 이름을 압축하지 않습니다. 이는 Azure AD 조인된 디바이스에만 적용됩니다.

Windows 10 버전 1607: 이 값은 Windows 10 버전 1607부터 지원됩니다.

CREDUIWIN_PACK_32_WOW
0x10000000
공급자가 64비트 시스템에서 실행 중인 경우에도 자격 증명 공급자는 ppvOutAuthBuffer 매개 변수가 가리키는 자격 증명 BLOB을 32비트 경계에 맞춰야 합니다.
0x80000000
Windows Hello 자격 증명은 스마트 카드 인증 버퍼에 압축됩니다. 얼굴, 지문 및 PIN 자격 증명 공급자에만 적용됩니다.

Windows 10, 버전 1809: 이 값은 Windows 10, 버전 1809 부터 지원됩니다.

반환 값

함수가 성공하면 함수는 ERROR_SUCCESS 반환합니다. 사용자가 함수를 취소하면 ERROR_CANCELLED 반환합니다. 다른 반환 값은 함수를 로드하지 못했음을 나타냅니다.

설명

이 함수는 자격 증명을 저장하지 않습니다.

SSPI를 사용하여 사용자를 인증하는 애플리케이션은 이 함수를 호출하면 안 됩니다. 대신 SspiPromptForCredentials를 호출합니다.

참고

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

요구 사항

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