Функция 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 может предоставить допустимый GUID для регистрации подключения. При вызове EapHostPeerEndSession завершается только текущий сеанс. Так как регистрация с помощью GUID не завершается, исходная регистрация EapHostPeerBeginSession остается без изменений. Таким образом, регистрация действует в нескольких сеансах.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | eappapis.h |
Библиотека | Eappprxy.lib |
DLL | Eappprxy.dll |