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


Функция EapHostPeerBeginSession (eappapis.h)

Запускает сеанс проверки подлинности EAP. Если функция EapHostPeerBeginSession завершается успешно, вызывающий объект должен также вызвать EapHostPeerEndSession , чтобы завершить сеанс проверки подлинности. Последняя функция должна вызываться независимо от того, успешно ли выполняются функции, отличные от EapHostPeerBeginSession .

Если требуется повторная проверка подлинности, независимо от причины, интерфейс, представленный параметром pConnectionId , будет отменен. В случаях, когда pConnectionId не зарегистрирован, необходимо также вызвать EapHostPeerClearConnection , чтобы удалить подключение.

Никогда больше не вызывайте EapHostPeerBeginSession в интерфейсе без вызова EapHostPeerEndSession. В интерфейсе, указанном pConnectionId, может быть активен только один сеанс проверки подлинности.

Синтаксис

DWORD EapHostPeerBeginSession(
  [in]  DWORD                       dwFlags,
  [in]  EAP_METHOD_TYPE             eapType,
  [in]  const EapAttributes * const pAttributeArray,
  [in]  HANDLE                      hTokenImpersonateUser,
  [in]  DWORD                       dwSizeofConnectionData,
  [in]  const BYTE * const          pConnectionData,
  [in]  DWORD                       dwSizeofUserData,
  [in]  const BYTE * const          pUserData,
  [in]  DWORD                       dwMaxSendPacketSize,
  [in]  const GUID * const          pConnectionId,
  [in]  NotificationHandler         func,
  [in]  void                        *pContextData,
  [out] EAP_SESSIONID               *pSessionId,
  [out] EAP_ERROR                   **ppEapError
);

Параметры

[in] dwFlags

Сочетание флагов EAP , описывающих новое поведение сеанса проверки подлинности EAP.

[in] eapType

Структура EAP_METHOD_TYPE , указывающая тип проверки подлинности EAP для этого сеанса.

[in] pAttributeArray

Указатель на структуру EapAttributes , задающую атрибуты EAP сущности для проверки подлинности.

[in] hTokenImpersonateUser

Обработка маркера олицетворения пользователя для использования в этом сеансе.

[in] dwSizeofConnectionData

Размер (в байтах) буфера данных подключения, предоставленного в pConnectionData.

[in] pConnectionData

Описывает конфигурацию, используемую для проверки подлинности. Допустимыми считаются данные подключения NULL. Метод должен работать с конфигурацией по умолчанию.

[in] dwSizeofUserData

Размер (в байтах) буфера данных пользователя, предоставленного в pUserData.

[in] pUserData

Указатель на буфер байтов, содержащий большой двоичный объект непрозрачных пользовательских данных, содержащий пользовательские данные, возвращенные функцией EapPeerGetIdentity . Пользовательские данные могут включать учетные данные или сертификаты, используемые для проверки подлинности. pUserData может иметь значение NULL. Интерпретация указателя NULL зависит от реализации метода . Данные пользователя состоят из учетных данных пользователя или компьютера, используемых для проверки подлинности. Обычно данные пользователя зависят от данных конфигурации.

Если вdwflags указано EAP_FLAG_PREFER_ALT_CREDENTIALS, учетные данные, передаваемые в EapPeerBeginSession , предпочтительнее, чем все другие формы получения учетных данных, даже если данные конфигурации, передаваемые в pConnectionData , запрашивают другой режим получения учетных данных. Если передача учетных данных в EapPeerBeginSession завершается сбоем, EAPHost прибегает к получению учетных данных конкретного метода, например из файла, имени входа Windows или хранилища сертификатов.

Автор метода EAP определяет учетные данные по умолчанию и альтернативные учетные данные. Например, в случае EAP-MSCHAPv2 учетными данными по умолчанию являются учетные данные Windows, полученные из winlogon, а альтернативными учетными данными являются учетные данные (имя пользователя, пароль, домен), передаваемые в pUserData.

[in] dwMaxSendPacketSize

Максимальный размер (в байтах) пакета EAP, который может быть отправлен во время сеанса.

[in] pConnectionId

Указатель на значение GUID, однозначно определяющее логический сетевой интерфейс, через который будет проходить проверка подлинности запрашивающего. Если запрашивающий ищет повторную проверку подлинности после изменения работоспособности NAP, он должен предоставить уникальный GUID. Параметр должен иметь значение NULL , если эта функция вызывается методом туннелирования для запуска внутреннего метода. Если параметр pConnectionId имеет значение NULL, параметры func и pContextData игнорируются.

[in] func

Указатель функции NotificationHandler , который предоставляет обратный вызов, используемый EAPHost для уведомления запрашивающего, когда требуется повторная проверка подлинности.

Если обработчик функции имеет значение NULL, параметр pContextData игнорируется. Если обработчик функции имеет значение NULL, это также означает, что вызывающий объект не заинтересован в уведомлении об изменениях SoH от клиента принудительного применения карантина EAP (QEC).

В следующем коде показан обратный вызов NotificationHandler .

func(*pConnectionId, pContextData);

[in] pContextData

Указатель на данные контекста повторной проверки подлинности, которые запрашивающий будет связывать с подключением при вызове func . Этот параметр может принимать значение NULL.

[out] pSessionId

Указатель на структуру EAP_SESSIONID , содержащую уникальный дескриптор для этого сеанса проверки подлинности EAP на сервере EAPHost.

[out] ppEapError

Указатель на адрес структуры EAP_ERROR . Перед вызовом этой функции адрес должен иметь значение NULL . Если данные об ошибках доступны, получается указатель на адрес структуры EAP_ERROR , содержащей все ошибки, возникающие во время выполнения этого вызова функции. После использования данных об ошибке освободите эту память, вызвав EapHostPeerFreeEapError.

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

None

Remarks

Если проситель EAPHost участвует в NAP, проситель будет реагировать на изменения состояния работоспособности сети. Если это состояние изменится, запрашивающий должен инициировать сеанс повторной проверки подлинности следующим образом.

  • Если при повторной проверке подлинности выполняется текущий сеанс, запрашивающий должен удалить текущий сеанс, вызвав EapHostPeerEndSession, а затем запустить новый сеанс, вызвав EapHostPeerBeginSession.
  • Если текущий сеанс с повторной проверкой подлинности не выполняется или предыдущий сеанс уже был завершен вызовом EapHostPeerEndSession, проситеру достаточно запустить новый сеанс, вызвав EapHostPeerBeginSession.
Вызов EapHostPeerBeginSession для установки сеанса повторной проверки подлинности можно выполнить из обратного вызова, указанного в параметре func , и вызывать при изменении состояния работоспособности. Эта функция обратного вызова указывает проситеру на то, чтобы отключить сетевую проверку подлинности, связанную с GUID, и повторно пройти проверку подлинности.

Подключение может храниться в нескольких сеансах, так как EapHostPeerBeginSession может предоставить допустимый GUID для регистрации подключения. При вызове EapHostPeerEndSession завершается только текущий сеанс. Так как регистрация с помощью GUID не завершается, исходная регистрация EapHostPeerBeginSession остается без изменений. Таким образом, регистрация действует в нескольких сеансах.

Примечание Регистрация подключения означает предоставление допустимого GUID и допустимого указателя функции обратного вызова.
 

Требования

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

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

Функции времени выполнения приложения EAPHost

EapHostPeerClearConnection

EapHostPeerEndSession

Единый вход и PLAP