WinHttpSetCredentials 함수(winhttp.h)

WinHttpSetCredentials 함수는 필요한 권한 부여 자격 증명을 서버에 전달합니다.

구문

WINHTTPAPI BOOL WinHttpSetCredentials(
  [in] HINTERNET hRequest,
  [in] DWORD     AuthTargets,
  [in] DWORD     AuthScheme,
  [in] LPCWSTR   pwszUserName,
  [in] LPCWSTR   pwszPassword,
  [in] LPVOID    pAuthParams
);

매개 변수

[in] hRequest

WinHttpOpenRequest에서 반환된 유효한 HINTERNET 핸들입니다.

[in] AuthTargets

인증 대상이 포함된 플래그를 지정하는 부호 없는 정수입니다. 다음 표의 값 중 하나일 수 있습니다.

의미
WINHTTP_AUTH_TARGET_SERVER
자격 증명은 서버에 전달됩니다.
WINHTTP_AUTH_TARGET_PROXY
자격 증명은 프록시에 전달됩니다.

[in] AuthScheme

인증 체계를 포함하는 플래그를 지정하는 부호 없는 정수입니다. WinHttpQueryAuthSchemes에서 반환된 지원되는 인증 체계 중 하나여야 합니다. 다음 표에서는 가능한 값을 식별합니다.

의미
WINHTTP_AUTH_SCHEME_BASIC
기본 인증을 사용합니다.
WINHTTP_AUTH_SCHEME_NTLM
NTLM 인증을 사용합니다.
WINHTTP_AUTH_SCHEME_PASSPORT
여권 인증을 사용합니다.
WINHTTP_AUTH_SCHEME_DIGEST
다이제스트 인증을 사용합니다.
WINHTTP_AUTH_SCHEME_NEGOTIATE
NTLM 및 Kerberos 인증 중에서 선택합니다.

[in] pwszUserName

유효한 사용자 이름을 포함하는 문자열에 대한 포인터입니다.

[in] pwszPassword

유효한 암호를 포함하는 문자열에 대한 포인터입니다. 암호는 비워 둘 수 있습니다.

[in] pAuthParams

이 매개 변수는 예약되어 있으며 NULL이어야 합니다.

반환 값

성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 확장 오류 정보는 GetLastError를 호출합니다. 다음 표에서는 반환된 오류 코드를 식별합니다.

오류 코드 Description
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
제공된 핸들이 올바른 상태가 아니므로 요청된 작업을 수행할 수 없습니다.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
제공된 핸들의 형식이 이 작업에 잘못되었습니다.
ERROR_WINHTTP_INTERNAL_ERROR
내부 오류가 발생했습니다.
ERROR_NOT_ENOUGH_MEMORY
요청된 작업을 완료하는 데 메모리가 부족합니다(Windows 오류 코드).

설명

WinHTTP가 비동기 모드에서 사용되는 경우에도(즉, WinHttpOpen에서 WINHTTP_FLAG_ASYNC 설정된 경우) 이 함수는 동기적으로 작동합니다. 반환 값은 성공 또는 실패를 나타냅니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

WinHttpSetCredentials에서 설정한 자격 증명은 단일 요청에만 사용됩니다. WinHTTP는 후속 요청에 사용하기 위해 이러한 자격 증명을 캐시하지 않습니다. 따라서 애플리케이션은 여러 문제에 대응할 수 있도록 작성해야 합니다. 인증된 연결을 다시 사용하는 경우 후속 요청에 이의를 제기할 수 없지만 코드는 언제든지 챌린지에 응답할 수 있어야 합니다.

WinHttpSetCredentials의 사용을 보여 주는 샘플 코드는 WinHTTP의 인증을 참조하세요.

참고 Passport 인증을 사용하고 407 상태 코드에 응답하는 경우 WinHTTP 애플리케이션은 WinHttpSetOption을 사용하여 WinHttpSetCredentials 대신 프록시 자격 증명을 제공해야 합니다. Passport 인증을 사용하는 경우에만 마찬가지입니다. WinHttpSetOption의 보안이 떨어지므로 다른 모든 상황에서는 WinHttpSetCredentials를 사용합니다.
 
참고 Windows XP 및 Windows 2000의 경우 WinHttp 시작 페이지의 런타임 요구 사항 섹션을 참조하세요.
 

요구 사항

   
지원되는 최소 클라이언트 Windows XP, Windows 2000 Professional SP3 포함 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003, Windows 2000 Server SP3 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winhttp.h
라이브러리 Winhttp.lib
DLL Winhttp.dll
재배포 가능 파일 Windows XP 및 Windows 2000에서 WinHTTP 5.0 및 인터넷 Explorer 5.01 이상.

추가 정보

Microsoft Windows HTTP 서비스 정보(WinHTTP)

WinHTTP의 인증

WinHTTP 버전

WinHttpCloseHandle

WinHttpConnect

WinHttpOpen

WinHttpOpenRequest

WinHttpQueryAuthSchemes