Función EapHostPeerBeginSession (eappapis.h)
Inicia una sesión de autenticación de EAP. Si la función EapHostPeerBeginSession se realiza correctamente, el autor de la llamada también debe llamar a EapHostPeerEndSession para finalizar la sesión de autenticación. Se debe llamar a la última función independientemente de si las funciones distintas de EapHostPeerBeginSession se realizan correctamente o no.
Si se requiere volver a autenticar, independientemente del motivo, se anulará el registro de la interfaz representada por el parámetro pConnectionId . En los casos en los que pConnectionId no está registrado, también debe llamar a EapHostPeerClearConnection para quitar la conexión.
Nunca llame a EapHostPeerBeginSession de nuevo en una interfaz sin llamar a EapHostPeerEndSession. Solo se puede activar una sesión de autenticación en la interfaz especificada por pConnectionId.
Sintaxis
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
);
Parámetros
[in] dwFlags
Combinación de marcas EAP que describen el nuevo comportamiento de la sesión de autenticación de EAP.
[in] eapType
Estructura EAP_METHOD_TYPE que especifica el tipo de autenticación EAP que se va a usar para esta sesión.
[in] pAttributeArray
Puntero a una estructura EapAttributes que especifica los atributos EAP de la entidad que se van a autenticar.
[in] hTokenImpersonateUser
Controle el token de suplantación de usuario para usarlo en esta sesión.
[in] dwSizeofConnectionData
Tamaño, en bytes, del búfer de datos de conexión proporcionado en pConnectionData.
[in] pConnectionData
Describe la configuración usada para la autenticación. Los datos de conexión NULL se consideran válidos. El método debe funcionar con la configuración predeterminada.
[in] dwSizeofUserData
Tamaño, en bytes, del búfer de datos de usuario proporcionado en pUserData.
[in] pUserData
Puntero a un búfer de bytes que contiene el BLOB de datos de usuario opaco que contiene los datos de usuario devueltos por la función EapPeerGetIdentity . Los datos de usuario pueden incluir credenciales o certificados usados para la autenticación. pUserData puede ser NULL. La interpretación de un puntero NULL depende de la implementación de un método. Los datos de usuario constan de credenciales de usuario o máquina usadas para la autenticación. Normalmente, los datos de usuario dependen de los datos de configuración.
Si EAP_FLAG_PREFER_ALT_CREDENTIALS se indica en dwflags, las credenciales que se pasan a EapPeerBeginSession se prefieren a todas las demás formas de recuperación de credenciales, incluso si los datos de configuración pasados a pConnectionData solicitan un modo diferente de recuperación de credenciales. Si se produce un error al pasar credenciales a EapPeerBeginSession , EAPHost recurre al método de recuperación de credenciales específica, en cuyo caso se podrían obtener credenciales de un archivo, inicio de sesión de Windows o un almacén de certificados, por ejemplo.
El autor del método EAP define las credenciales predeterminadas y las credenciales alternativas. Por ejemplo, en el caso de EAP-MSCHAPv2 las credenciales predeterminadas son las credenciales de Windows obtenidas de winlogon y las credenciales alternativas son las credenciales (nombre de usuario, contraseña, dominio) pasadas a pUserData.
[in] dwMaxSendPacketSize
Tamaño máximo, en bytes, de un paquete EAP que se puede enviar durante la sesión.
[in] pConnectionId
Puntero a un valor GUID que identifica de forma única la interfaz de red lógica a través de la cual tendrá lugar la autenticación del suplicante. Si el supplicante busca volver a autenticar después de un cambio de estado nap, debe proporcionar un GUID único. El parámetro debe ser NULL cuando un método de tunelización llama a esta función para iniciar su método interno. Cuando el parámetro pConnectionId es NULL, se omiten los parámetros func y pContextData .
[in] func
Puntero de función NotificationHandler que proporciona la devolución de llamada usada por EAPHost para notificar al supplicante cuando se necesita volver a autenticar.
Si el controlador de funciones es NULL, se omite el parámetro pContextData . Si el controlador de funciones es NULL, también significa que el autor de la llamada no está interesado en la notificación de cambio de SoH del cliente de cumplimiento de cuarentena de EAP (QEC).
El código siguiente muestra una llamada de devolución de llamada de NotificationHandler .
func(*pConnectionId, pContextData);
[in] pContextData
Puntero para volver a autenticar los datos de contexto que el supplicante asociará a la conexión cuando se llame a func . Este parámetro puede ser NULL.
[out] pSessionId
Puntero a una estructura de EAP_SESSIONID que contiene el identificador único de esta sesión de autenticación de EAP en el servidor EAPHost.
[out] ppEapError
Puntero a la dirección de una estructura de EAP_ERROR . La dirección debe establecerse en NULL antes de llamar a esta función. Si hay datos de error disponibles, se recibe un puntero a la dirección de una estructura de EAP_ERROR que contiene los errores generados durante la ejecución de esta llamada de función. Después de usar los datos de error, libere esta memoria llamando a EapHostPeerFreeEapError.
Valor devuelto
Ninguno
Observaciones
Si un supplicante EAPHost participa en NAP, el suplicante responderá a los cambios en el estado de su estado de red. Si ese estado cambia, el suplicante debe iniciar una sesión de nueva autenticación como se indica a continuación.
- Si se produce una sesión actual cuando se vuelve a autenticar, el suplicante debe anular la sesión actual llamando a EapHostPeerEndSession y, a continuación, iniciar una nueva sesión llamando a EapHostPeerBeginSession.
- Si no hay ninguna sesión actual con la nueva autenticación, o la sesión anterior ya finalizó llamando a EapHostPeerEndSession, el suplicante solo debe iniciar una nueva sesión llamando a EapHostPeerBeginSession.
Una conexión se puede mantener en varias sesiones porque EapHostPeerBeginSession puede proporcionar un GUID válido para registrar la conexión. Cuando se llama a EapHostPeerEndSession , solo se finaliza la sesión actual. Dado que el registro con el GUID no finaliza, el registro original de EapHostPeerBeginSession permanece intacto. Por lo tanto, el registro es efectivo en varias sesiones.
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | eappapis.h |
Library | Eappprxy.lib |
Archivo DLL | Eappprxy.dll |