Поделиться через


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

Функция RasGetEapUserIdentity извлекает сведения об удостоверениях для текущего пользователя. Используйте эти сведения для вызова RasDial с записью телефонной книги, требующей расширяемого протокола проверки подлинности (EAP).

Синтаксис

DWORD RasGetEapUserIdentityA(
  [in]  LPCSTR                pszPhonebook,
  [in]  LPCSTR                pszEntry,
  [in]  DWORD                 dwFlags,
  [in]  HWND                  hwnd,
  [out] LPRASEAPUSERIDENTITYA *ppRasEapUserIdentity
);

Параметры

[in] pszPhonebook

Указатель на строку null-terminated, которая указывает полный путь к файлу телефонной книги (PBK). Если этот параметр null, функция использует системную телефонную книгу.

[in] pszEntry

Указатель на строку null-terminated, указывающую существующее имя записи.

[in] dwFlags

Указывает ноль или более следующих флагов, которые соответствуют процессу проверки подлинности.

Флаг Значение
RASEAPF_NonInteractive
Указывает, что протокол проверки подлинности не должен содержать графический пользовательский интерфейс. Если этот флаг отсутствует, он подходит для протокола для отображения пользовательского интерфейса.
RASEAPF_Logon
Указывает, что данные пользователя получены из WinLogon.
RASEAPF_Preview
Указывает, что пользователю необходимо запрашивать сведения об удостоверении перед вызовом.

[in] hwnd

Обработка родительского окна для диалогового окна пользовательского интерфейса. Если параметр fInvokeUIFALSE, должно быть NULL.

[out] ppRasEapUserIdentity

Указатель на указатель, который при успешном возвращении получает адрес структуры RASEAPUSERIDENTITY, содержащей сведения об удостоверениях пользователя EAP. RasGetEapUserIdentity выделяет буфер памяти для структуры RASEAPUSERIDENTITY. Освободите эту память путем вызова RasFreeEapUserIdentity.

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

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

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

Ценность Значение
E_INVALID_ARG
Параметр pcbEapUserIdentity — NULL.
ERROR_INTERACTIVE_MODE
Функция была вызвана с флагом RASEAPF_NonInteractive. Однако протокол проверки подлинности должен отображать пользовательский интерфейс, чтобы получить необходимые сведения об удостоверениях от пользователя.
ERROR_INVALID_FUNCTION_FOR_ENTRY
Либо метод проверки подлинности для этой записи телефонной книги не является EAP, либо метод проверки подлинности — EAP, но протокол использует стандартное диалоговое окно учетных данных Windows NT/Windows 2000 для получения сведений об удостоверениях пользователя. В любом случае вызывающий объект не должен передавать сведения об удостоверениях EAP в RasDial.
ERROR_RASMAN_CANNOT_INITIALIZE
Не удалось инициализировать службу удаленного доступа.
Другие
Используйте FormatMessage, чтобы получить системное сообщение об ошибке, соответствующее возвращенной коду ошибки.

Замечания

RasGetEapUserIdentity вызывает функцию RAS RasGetEapUserData и функцию EAP RasEapGetIdentity. RasEapGetIdentity реализуется протоколом проверки подлинности.

Если функция выполнена успешно, это возвращаемое значение NO_ERROR, вызывающий объект должен скопировать сведения об удостоверении EAP из структуры RASEAPUSERIDENTITY, на которую указывает параметр ppRasEapUserIdentity в RASDIALPARAMS и структуры RASDIALEXTENSIONS, используемые в вызове RasDial.

Если разработанное приложение удаленного доступа имеет графический пользовательский интерфейс, вызывающий объект RasGetEapUserIdentity не должен указывать флаг RASEAPF_NonInteractive. Если у приложения есть пользовательский интерфейс командной строки, вызывающий объект может потребовать указать флаг RASEAPF_NonInteractive, чтобы предотвратить отображение графического пользовательского интерфейса протокола проверки подлинности.

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка ras.h
библиотеки Rasapi32.lib
DLL Rasapi32.dll

См. также

RASEAPUSERIDENTITY

RasDial

RasEapGetIdentity

RasFreeEapUserIdentity

RasGetEapUserData

RasSetEapUserData