RasSetCredentialsA 함수(ras.h)

RasSetCredentials 함수는 지정된 RAS 전화 번호부 항목과 연결된 사용자 자격 증명을 설정합니다.

구문

DWORD RasSetCredentialsA(
  [in] LPCSTR            unnamedParam1,
  [in] LPCSTR            unnamedParam2,
  [in] LPRASCREDENTIALSA unnamedParam3,
  [in] BOOL              unnamedParam4
);

매개 변수

[in] unnamedParam1

전화 번호부(PBK) 파일의 전체 경로 및 파일 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 함수는 현재 기본 전화 번호부 파일을 사용합니다. 기본 전화 번호부 파일은 전화 접속 네트워킹 대화 상자의 사용자 기본 설정 속성 시트에서 사용자가 선택한 파일입니다.

[in] unnamedParam2

전화 번호부 항목의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다.

[in] unnamedParam3

지정된 전화 번호부 항목에 대해 설정할 사용자 자격 증명을 지정하는 RASCREDENTIALS 구조체에 대한 포인터입니다. RasSetCredentials를 호출하기 전에 구조체의 dwSize 멤버를 로 sizeof(RASCREDENTIALS) 설정하고 dwMask 멤버를 설정하여 설정할 자격 증명 정보를 나타냅니다.

[in] unnamedParam4

RasSetCredentials가 기존 자격 증명을 빈 문자열 ""로 설정하여 지울지 여부를 지정하는 값입니다. 이 플래그가 TRUE이면 RASCREDENTIALS 구조체의 dwMask 멤버는 함수가 빈 문자열로 설정하는 자격 증명을 나타냅니다. 이 플래그가 FALSE이면 함수는 해당 RASCREDENTIALS 멤버의 내용에 따라 표시된 자격 증명을 설정합니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

함수가 실패하면 반환 값은 다음 오류 코드 또는 라우팅 및 원격 액세스 오류 코드 또는 WinError.h의 값 중 하나입니다.

의미
ERROR_CANNOT_OPEN_PHONEBOOK
지정한 전화 번호부를 찾을 수 없습니다.
ERROR_INVALID_PARAMETER
lpCredentials 매개 변수가 NULL이거나 지정된 항목이 전화 번호부에 없습니다.
ERROR_ACCESS_DENIED
다음 조건 중 하나가 발생했습니다.
  • 호출 애플리케이션이 사용자별 연결에 대한 기본 자격 증명을 설정하려고 했습니다. 기본 자격 증명은 모든 사용자 연결에 대해서만 설정할 수 있습니다.
  • 사용자에게 모든 사용자 connectoid의 경우 모든 사용자에 대해 미리 공유된 키 또는 자격 증명을 설정할 수 있는 올바른 권한이 없습니다. 관리자만 이러한 작업을 완료할 수 있습니다.

설명

RasSetCredentials 함수는 지정된 RAS 전화 번호부 항목과 연결된 사용자 자격 증명을 설정합니다. 전화 번호부 항목과 함께 저장된 자격 증명은 지정된 전화 번호부 항목을 사용하여 성공적으로 연결할 마지막 사용자의 자격 증명이거나, 이후에 전화 번호부 항목에 대한 RasSetCredentials 또는 RasSetEntryDialParams 함수에 대한 호출에서 지정된 자격 증명입니다.

RasSetCredentials 함수는 전화 번호부 항목으로 자격 증명을 안전하게 저장하는 기본 방법입니다. RasSetCredentials 는 이후 Windows 운영 체제 릴리스에서 지원되지 않을 수 있는 RasSetEntryDialParams 함수를 대체합니다.

암호 핸들은 "**************"(별표 16개)입니다. RasGetCredentials를 호출하고 암호 필드에 16 *s를 다시 받으면 저장된 암호가 있으며 보안상의 이유로 일반 텍스트로 다시 제공되지 않습니다. RASCREDENTIALS 구조체의 szPassword 멤버에 RasGetCredentials 또는 RasGetEntryDialParams에서 반환된 암호 핸들(16*s)이 포함된 경우 RasSetCredentials에 대한 다음 호출은 저장된 암호를 변경하지 않습니다.

모든 사용자 연결에 대한 기본 자격 증명을 설정하려면 lpCredentials 매개 변수가 가리키는 RASCREDENTIALS 구조체의 dwMask 멤버에서 RASCM_DefaultCreds 플래그를 설정합니다. 사용자별 연결에 대한 기본 자격 증명을 설정하려고 하면 RasSetCredentials는ERROR_ACCESS_DENIED 반환합니다.

모든 사용자 연결에 대한 자격 증명을 설정할 때 호출 애플리케이션이 전화 번호부 매개 변수 lpszPhonebook에 대해 NULL이 아닌 값을 지정하는 경우 전화 번호부 파일은 모든 사용자 애플리케이션 데이터 경로 아래의 전화 번호부 디렉터리에 있어야 합니다. 전화 번호부 파일의 올바른 위치를 가져오려면 먼저 CSIDL 값이 CSIDL_COMMON_APPDATASHGetFolderPath를 호출합니다. SHGetFolderPath 는 모든 사용자 애플리케이션 데이터 경로를 반환합니다. 이 경로에 다음 문자열을 추가합니다.

Microsoft\Network\Connections\Pbk

결합된 경로는 전화 번호부 파일의 올바른 위치입니다.

참고lpszPhonebook 매개 변수에 NULL이 아닌 값을 지정하는 것은 이후 버전의 Windows 운영 체제에서 지원되지 않을 수 있습니다.
 
미리 공유된 키를 설정하려면 RASCREDENTIALS에서 RASCM_PreSharedKey 플래그를 사용합니다. dwMask 필드입니다.

참고

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

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ras.h
라이브러리 Rasapi32.lib
DLL Rasapi32.dll

추가 정보

RASCREDENTIALS

Rasdial

RasGetCredentials

RasSetEntryDialParams

RAS(원격 액세스 서비스) 개요

원격 액세스 서비스 함수