Функция RasEapGetIdentity (raseapif.h)

Диспетчер соединений RAS вызывает функцию RasEapGetIdentity для получения сведений об удостоверениях пользователя, запрашивающего проверку подлинности.

Синтаксис

DWORD RasEapGetIdentity(
  [in]  DWORD       dwEapTypeId,
  [in]  HWND        hwndParent,
  [in]  DWORD       dwFlags,
  [in]  const WCHAR *pwszPhonebook,
  [in]  const WCHAR *pwszEntry,
  [in]  BYTE        *pConnectionDataIn,
  [in]  DWORD       dwSizeOfConnectionDataIn,
  [in]  BYTE        *pUserDataIn,
  [in]  DWORD       dwSizeOfUserDataIn,
  [out] BYTE        **ppUserDataOut,
  [out] DWORD       *pdwSizeOfUserDataOut,
  [out] WCHAR       **ppwszIdentityOut
);

Параметры

[in] dwEapTypeId

Указывает протокол проверки подлинности, для которого вызывается пользовательский интерфейс удостоверения.

[in] hwndParent

Дескриптор в родительском окне диалогового окна пользовательского интерфейса. Если параметр dwFlags содержит флаг RAS_EAP_FLAG_NON_INTERACTIVE, то параметр hwndParent имеет значение NULL.

[in] dwFlags

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

Flag Значение
RAS_EAP_FLAG_ROUTER
Указывает, что компьютер, на котором выполняется набор, является маршрутизатором. Отсутствие этого флага указывает, что компьютер, набирающий номер в, является клиентом RAS.
RAS_EAP_FLAG_NON_INTERACTIVE
Указывает, что протокол проверки подлинности не должен выводить пользовательский интерфейс. Если протокол проверки подлинности не может определить удостоверение из предоставленных данных, он должен вернуть код ошибки , ERROR_INTERACTIVE_MODE. Если этот флаг указан, параметр hwndParent будет иметь значение NULL.
RAS_EAP_FLAG_LOGON
Указывает, что данные пользователя получаются при входе в локальную систему, т. е. из Winlogon.exe.
RAS_EAP_FLAG_PREVIEW
Указывает, что пользователь должен получить запрос на ввод сведений об удостоверении перед набором номера.
RAS_EAP_FLAG_FIRST_LINK
Указывает, что это подключение является первым в многоканавом соединении. Дополнительные сведения см. в разделе [Многолинок и обратный вызов Connections](/windows/win32/eap/multilink-and-callback-connections).
RAS_EAP_FLAG_MACHINE_AUTH
Указывает, что для проверки подлинности процесс проверки подлинности использует учетные данные компьютера. Учетные данные могут быть сертификатом, именем компьютера или паролем, как в случае с MSCHAPv2, или любым другим способом идентификации компьютера. Если протокол проверки подлинности не поддерживает проверку подлинности компьютера, он должен вернуть ошибку ERROR_NOT_SUPPORTED.
RAS_EAP_FLAG_8021X_AUTH
Указывает, что этот сеанс выполняется в беспроводном контексте.

[in] pwszPhonebook

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

[in] pwszEntry

Указатель на строку Юникода с пустым завершением, указывающую существующее имя записи.

[in] pConnectionDataIn

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

[in] dwSizeOfConnectionDataIn

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

[in] pUserDataIn

Указатель на данные конкретного пользователя, которые в настоящее время хранятся для этого пользователя в реестре.

[in] dwSizeOfUserDataIn

Указывает размер пользовательских данных, которые в настоящее время хранятся для этого пользователя в реестре.

[out] ppUserDataOut

Указатель на указатель, который при успешном возвращении указывает на данные удостоверения для пользователя. Эти данные будут переданы в протокол проверки подлинности в элементе pUserDataPPP_EAP_INPUT во время вызова RasEapBegin.

Протокол проверки подлинности должен выделять буфер памяти для данных удостоверений. RAS освободит эту память, вызвав RasEapFreeMemory.

[out] pdwSizeOfUserDataOut

Указатель на переменную DWORD , которая получает размер данных, на которые указывает параметр ppUserDataOut .

[out] ppwszIdentityOut

Указатель на указатель, который при успешном возвращении указывает на строку Юникода, завершающуюся null, которая идентифицирует пользователя, запрашивающего проверку подлинности. Эта строка передается протоколу проверки подлинности в элементе pszIdentityPPP_EAP_INPUT во время вызова RasEapBegin.

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

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

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

Если функция вызывается с флагом RAS_EAP_FLAG_NON_INTERACTIVE, но должна вызвать пользовательский интерфейс для определения удостоверения пользователя, функция должна вернуть ERROR_INTERACTIVE_MODE.

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

Комментарии

Библиотека DLL, реализующая RasEapGetIdentity и RasEapFreeMemory , может поддерживать несколько протоколов проверки подлинности. Параметр dwEapTypeId указывает, для какого протокола следует вызвать пользовательский интерфейс удостоверения.

Протоколы IEEE 802.1X и PPP не вызывают RasEapGetIdentity без реализации RasEapFreeMemory.

Протокол проверки подлинности получает данные, возвращенные из RasEapGetIdentity в элементе pUserDataPPP_EAP_INPUT во время RasEapBegin. Чтобы сохранить данные этого пользователя в реестре, протокол проверки подлинности должен задать для элемента pUserDataPPP_EAP_OUTPUT указывать на данные, а для элемента fSaveUserDataPPP_EAP_OUTPUT значение TRUE.

Эта функция вызывается функцией RAS RasGetEapUserIdentity.

Если RasEapGetIdentity отображает пользовательский интерфейс, пользовательский интерфейс должен поддерживать WM_COMMAND сообщений, где ЗНАЧЕНИЕ LOWORD(wParam) равно IDCANCEL.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header raseapif.h

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

Функции EAP

Справочник по расширенному протоколу проверки подлинности

Получение сведений об удостоверениях

PPP_EAP_INPUT

RasEapFreeMemory

RasEapMakeMessage

RasGetEapUserIdentity