Функция RasSetCredentialsA (ras.h)

Функция RasSetCredentials задает учетные данные пользователя, связанные с указанной записью телефонной книги RAS.

Синтаксис

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

Параметры

[in] unnamedParam1

Указатель на строку с пустым завершением, указывающую полный путь и имя файла телефонной книги (PBK). Если этот параметр имеет значение NULL, функция использует текущий файл телефонной книги по умолчанию. Файл телефонной книги по умолчанию — это файл, выбранный пользователем на странице свойств Пользовательские настройки диалогового окна Сеть с телефонным подключением .

[in] unnamedParam2

Указатель на строку, завершающуюся значением NULL, которая указывает имя записи телефонной книги.

[in] unnamedParam3

Указатель на структуру RASCREDENTIALS , указывающую учетные данные пользователя, которые нужно задать для указанной записи телефонной книги. Перед вызовом RasSetCredentials задайте для элемента dwSize структуры sizeof(RASCREDENTIALS) значение и задайте член dwMask , чтобы указать учетные данные, которые необходимо задать.

[in] unnamedParam4

Значение типа , указывающее, очищает ли RasSetCredentials существующие учетные данные, задавая для них пустую строку "". Если этот флаг имеет значение TRUE, член dwMask структуры RASCREDENTIALS указывает, какие учетные данные функция присваивает пустой строке. Если этот флаг имеет значение FALSE, функция задает указанные учетные данные в соответствии с содержимым соответствующих членов RASCREDENTIALS .

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет ERROR_SUCCESS.

Если функция завершается ошибкой, возвращается один из следующих кодов ошибок или значение из кода ошибок маршрутизации и удаленного доступа или WinError.h.

Значение Значение
ERROR_CANNOT_OPEN_PHONEBOOK
Не удается найти указанную телефонную книгу.
ERROR_INVALID_PARAMETER
Параметр lpCredentials имеет значение NULL, или указанная запись не существует в телефонной книге.
ERROR_ACCESS_DENIED
Произошло одно из следующих условий:
  • Вызывающее приложение попыталось задать учетные данные по умолчанию для подключения для каждого пользователя. Учетные данные по умолчанию можно задать только для подключения ко всем пользователям.
  • Пользователь не имеет правильных прав на настройку общих ключей или учетных данных для всех пользователей в случае всех пользователей connectoids. Эти задачи могут выполнять только администраторы.

Комментарии

Функция RasSetCredentials задает учетные данные пользователя, связанные с указанной записью телефонной книги RAS. Учетные данные, хранящиеся с записью телефонной книги, — это учетные данные последнего пользователя, успешно подключившегося с помощью указанной записи телефонной книги, или учетные данные, которые впоследствии были указаны при вызове функции RasSetCredentials или RasSetEntryDialParams для записи телефонной книги.

Функция RasSetCredentials является предпочтительным способом безопасного хранения учетных данных с помощью записи телефонной книги. RasSetCredentials заменяет функцию RasSetEntryDialParams , которая может не поддерживаться в будущих выпусках операционной системы Windows.

Дескриптор пароля — "*** (16 звездочек). Если вы вызываете RasGetCredentials и получаете 16 *s обратно в поле пароля, у вас есть сохраненный пароль, и по соображениям безопасности он не будет возвращен вам в виде обычного текста. Если член szPassword структуры RASCREDENTIALS содержит дескриптор пароля (16 *s), возвращенный RasGetCredentials или RasGetEntryDialParams, следующий вызов RasSetCredentials не изменит сохраненный пароль.

Чтобы задать учетные данные по умолчанию для подключения ко всем пользователям, установите флаг RASCM_DefaultCreds в члене dwMask структуры RASCREDENTIALS , на которую указывает параметр lpCredentials . При попытке задать учетные данные по умолчанию для подключения для каждого пользователя RasSetCredentials возвращает ERROR_ACCESS_DENIED.

При настройке учетных данных для подключения для всех пользователей, если вызывающее приложение указывает значение, отличное от NULL, для параметра телефонной книги , lpszPhonebook, файл телефонной книги должен находиться в каталоге телефонной книги под путем к данным приложения для всех пользователей. Чтобы получить правильное расположение для файла телефонной книги, сначала вызовите SHGetFolderPath со значением CSIDLCSIDL_COMMON_APPDATA. SHGetFolderPath возвращает путь к данным приложения для всех пользователей. Добавьте следующую строку в этот путь:

Microsoft\Network\Connections\Pbk

Объединенный путь является правильным расположением для файла телефонной книги.

Примечание Указание значения, отличного от NULL, для параметра lpszPhonebook может не поддерживаться в более поздних версиях операционной системы Windows.
 
Чтобы задать общий ключ, используйте флаг RASCM_PreSharedKey в RASCREDENTIALS. Поле dwMask .

Примечание

Заголовок ras.h определяет RasSetCredentials в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ras.h
Библиотека Rasapi32.lib
DLL Rasapi32.dll

См. также раздел

RASCREDENTIALS

Rasdial

RasGetCredentials

RasSetEntryDialParams

Обзор службы удаленного доступа (RAS)

Функции службы удаленного доступа