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


структура PPP_EAP_INPUT (raseapif.h)

Структура PPP_EAP_INPUT используется во взаимодействии между реализацией PPP службы RAS диспетчер подключений и EAP.

Эта структура предоставляет сведения о пользователях и упрощает использование поставщиков проверки подлинности, таких как сервер RADIUS.

Синтаксис

typedef struct _PPP_EAP_INPUT {
  DWORD              dwSizeInBytes;
  DWORD              fFlags;
  BOOL               fAuthenticator;
  WCHAR              *pwszIdentity;
  WCHAR              *pwszPassword;
  BYTE               bInitialId;
  RAS_AUTH_ATTRIBUTE *pUserAttributes;
  BOOL               fAuthenticationComplete;
  DWORD              dwAuthResultCode;
  HANDLE             hTokenImpersonateUser;
  BOOL               fSuccessPacketReceived;
  BOOL               fDataReceivedFromInteractiveUI;
  PBYTE              pDataFromInteractiveUI;
  DWORD              dwSizeOfDataFromInteractiveUI;
  PBYTE              pConnectionData;
  DWORD              dwSizeOfConnectionData;
  PBYTE              pUserData;
  DWORD              dwSizeOfUserData;
  HANDLE             hReserved;
  GUID               guidConnectionId;
  BOOL               isVpn;
} PPP_EAP_INPUT, *PPPP_EAP_INPUT;

Члены

dwSizeInBytes

Задает размер структуры PPP_EAP_INPUT в байтах. Значение этого элемента можно использовать для различения текущей и будущих версий этой структуры.

fFlags

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

Значение Значение
RAS_EAP_FLAG_ROUTER
Указывает, является ли компьютер, набирающий номер, маршрутизатором или клиентом RAS. Если компьютер является маршрутизатором, необходимо задать этот параметр.
RAS_EAP_FLAG_NON_INTERACTIVE
Указывает, что протокол проверки подлинности не должен выводить пользовательский интерфейс. Если протокол проверки подлинности не может определить удостоверение на основе предоставленных данных, он должен вернуть код ошибки ERROR_INTERACTIVE_MODE, определенный в файле raserror.h.
RAS_EAP_FLAG_LOGON
Указывает, что данные пользователя из , полученные из Winlogon.
RAS_EAP_FLAG_FIRST_LINK
Указывает, что это подключение является первой ссылкой в многоканавом соединении. Дополнительные сведения см. в разделе [Multilink and Callback Connections](/windows/win32/eap/multilink-and-callback-connections).
RAS_EAP_FLAG_GUEST_ACCESS
Указывает, требуется ли клиенту гостевой доступ. Этот флаг обычно используется в случае беспроводного подключения, так что если проверка подлинности завершается сбоем в течение N последовательных попыток беспроводного клиента, если настроено на запрос гостевого доступа, то выполняется путем передачи этого флага. Сервер RADIUS должен быть настроен, чтобы разрешить гостевой доступ.
RAS_EAP_FLAG_8021X_AUTH
Указывает, что этот сеанс выполняется в беспроводном контексте.
RAS_EAP_FLAG_RESUME_FROM_HIBERNATE
Указывает, что это первый вызов после возобновления работы компьютера из гибернации.
RAS_EAP_FLAG_PEAP_UPFRONT
Указывает, что PEAP включен в начале конвейера IAS.
RAS_EAP_FLAG_ALTERNATIVE_USER_DB
Указывает, что пользовательская база данных не является Active Directory.
RAS_EAP_FLAG_PRE_LOGON
Указывает, что учетные данные пользователя или учетной записи компьютера должны быть получены в безопасном режиме без создания нескольких экземпляров пользовательского интерфейса.

fAuthenticator

Указывает, работает ли протокол проверки подлинности на сервере или клиенте. Значение TRUE указывает, что протокол проверки подлинности работает на сервере в качестве средства проверки подлинности. Значение FALSE указывает, что протокол проверки подлинности работает на клиенте как процесс проверки подлинности.

pwszIdentity

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

Если протокол проверки подлинности может получить удостоверение пользователя из дополнительного источника, например сертификата, он должен убедиться, что производное удостоверение соответствует значению pwszIdentity.

pwszPassword

Указатель на строку Юникода, содержащую пароль учетной записи пользователя. Доступно, только если fAuthenticator имеет значение FALSE. Этот элемент может иметь значение NULL.

bInitialId

Указывает идентификатор исходного пакета EAP, отправленного библиотекой DLL. Это значение увеличивается на единицу для каждого последующего пакета запроса.

pUserAttributes

Указатель на массив RAS_AUTH_ATTRIBUTE структур. Массив завершается структурой с элементом raaType со значением raatMinimum (см . RAS_AUTH_ATTRIBUTE_TYPE). Во время вызова RasEapBegin этот массив содержит атрибуты, описывающие текущего набранного пользователя. Если элемент fAuthenticationComplete имеет значение TRUE, этот массив может содержать атрибуты, возвращаемые поставщиком проверки подлинности.

fAuthenticationComplete

Указывает логическое значение, указывающее, прошел ли поставщик проверки подлинности пользователя. Значение TRUE указывает на завершение проверки подлинности. Проверьте элемент dwAuthResultCode , чтобы определить, прошла ли проверка подлинности успешно. Игнорируйте этот элемент, если протокол проверки подлинности не использует поставщик проверки подлинности.

dwAuthResultCode

Указывает результат процесса проверки подлинности поставщика проверки подлинности. Успешная проверка подлинности приводит к NO_ERROR. Коды сбоев проверки подлинности для dwAuthResultCode должны поступать только из Winerror.h, Raserror.h или Mprerror.h. Игнорируйте это поле, если протокол проверки подлинности не использует поставщик проверки подлинности.

hTokenImpersonateUser

Обработка маркера олицетворения для пользователя, запрашивающего проверку подлинности. Этот элемент действителен только на стороне клиента. Дополнительные сведения о маркерах олицетворения см. в разделе Маркеры доступа.

fSuccessPacketReceived

Указывает, что проверка подлинности прошла успешно. RAS задает этому члену значение TRUE , если клиент получает пакет NCP, даже если клиент еще не получил пакет успешного выполнения EAP. Значение FALSE указывает, что пакет NCP не был получен.

Пакет успешного выполнения EAP — это неподтверждающий пакет. Таким образом, сервер может потерять его и не возмещать. В этом случае получение пакета NCP означает, что проверка подлинности прошла успешно, так как сервер перешел на этап NCP PPP.

Проверьте этот элемент только на стороне клиента.

fDataReceivedFromInteractiveUI

Указывает, доступны ли сведения из интерактивного пользовательского интерфейса. Значение по умолчанию — FALSE. RAS устанавливает для этого члена значение TRUE всякий раз, когда пользователь выходит из интерактивного пользовательского интерфейса протокола проверки подлинности.

pDataFromInteractiveUI

Указатель на данные, полученные из интерактивного пользовательского интерфейса протокола проверки подлинности. Этот указатель не равен NULL , если элемент fDataReceivedFromInteractiveUI имеет значение TRUE и интерактивный пользовательский интерфейс фактически вернул данные. В противном случае этот указатель имеет значение NULL.

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

dwSizeOfDataFromInteractiveUI

Указывает размер (в байтах) данных, на которые указывает pDataFromInteractiveUI. Если данные из интерактивного пользовательского интерфейса не возвращаются, этот элемент равен нулю.

pConnectionData

Указатель на данные подключения, полученные из пользовательского интерфейса конфигурации протокола проверки подлинности. Эти данные доступны только в том случае, если структура PPP_EAP_INPUT передается в RasEapBegin. Он недоступен в вызовах RasEapMakeMessage.

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

Если пользовательский интерфейс конфигурации протокола проверки подлинности не возвращает никаких данных, этот элемент имеет значение NULL.

dwSizeOfConnectionData

Указывает размер данных в байтах, на которые указывает pConnectionData. Если pConnectionData имеет значение NULL, этот элемент равен нулю.

pUserData

Указатель на данные пользователя, полученные от функции RasEapGetIdentity протокола проверки подлинности на клиентском компьютере. Если протокол проверки подлинности не реализует RasEapGetIdentity, этот член указывает на данные из реестра для этого пользователя.

Эти данные доступны только в том случае, если структура PPP_EAP_INPUT передается в RasEapBegin. Он недоступен в вызовах RasEapMakeMessage.

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

Если функция RasEapGetIdentity не реализована или не вернула никаких данных, а данные для пользователя в реестре отсутствуют, этот элемент имеет значение NULL.

dwSizeOfUserData

Задает размер (в байтах) данных, на которые указывает pUserData. Если pUserData имеет значение NULL, этот элемент равен нулю.

hReserved

Этот элемент зарезервирован.

guidConnectionId

isVpn

Комментарии

Структура PPP_EAP_INPUT передается ras в протокол проверки подлинности в вызовах RasEapBegin и RasEapMakeMessage.

Члены pwszIdentity и pwszPassword структуры PPP_EAP_INPUT используются функцией RasEapBegin для получения сведений о пользователе. Член pwszPassword не имеет значения NULL , только если элемент fAuthenticator имеет значение FALSE, то есть протокол проверки подлинности выполняется на клиентском компьютере.

Если протокол проверки подлинности использует поставщик проверки подлинности, например Radius или проверку подлинности домена Windows 2000, для взаимодействия с поставщиком проверки подлинности используются следующие элементы:

pUserAttributesfAuthenticationCompletedwAuthResultCode Обратите внимание, что массив структур RAS_AUTH_ATTRIBUTE передается, только если fAuthenticator имеет значение TRUE. Этот массив содержит сведения о текущем сеансе, такие как идентификатор порта и локальный IP-адрес.

Требования

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

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

Структуры EAP

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

RAS_AUTH_ATTRIBUTE

RasEapBegin

RasEapFreeMemory

RasEapGetIdentity

RasEapMakeMessage