Función RasEapGetIdentity (raseapif.h)

El administrador de conexiones RAS llama a la función RasEapGetIdentity para obtener información de identidad para el usuario que solicita autenticación.

Sintaxis

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
);

Parámetros

[in] dwEapTypeId

Especifica el protocolo de autenticación para el que se va a invocar la interfaz de usuario de identidad.

[in] hwndParent

Controlar en la ventana primaria del cuadro de diálogo de la interfaz de usuario. Si el parámetro dwFlags contiene la marca RAS_EAP_FLAG_NON_INTERACTIVE, hwndParent es NULL.

[in] dwFlags

Especifica cero o más de las marcas siguientes que califican el proceso de autenticación.

Marca Significado
RAS_EAP_FLAG_ROUTER
Especifica que el equipo que está marcando es un enrutador. La ausencia de esta marca indica que el equipo que marca es un cliente RAS.
RAS_EAP_FLAG_NON_INTERACTIVE
Especifica que el protocolo de autenticación no debe mostrar una interfaz de usuario. Si el protocolo de autenticación no puede determinar la identidad de los datos proporcionados, debe devolver el código de error, ERROR_INTERACTIVE_MODE. Si se especifica esta marca, el parámetro hwndParent será NULL.
RAS_EAP_FLAG_LOGON
Especifica que los datos de usuario se obtienen al iniciar sesión en el sistema local, que procede de Winlogon.exe.
RAS_EAP_FLAG_PREVIEW
Especifica que se debe solicitar al usuario información de identidad antes de marcar.
RAS_EAP_FLAG_FIRST_LINK
Indica que esta conexión es el primer vínculo de una conexión de varios vínculos. Consulte [Multilink and Callback Connections](/windows/win32/eap/multilink-and-callback-connections) para obtener más información.
RAS_EAP_FLAG_MACHINE_AUTH
Especifica que el proceso de autenticación usa credenciales de máquina para la autenticación. Las credenciales pueden ser un certificado, un nombre de equipo o una contraseña, como en el caso de MSCHAPv2 o cualquier otro medio para identificar la máquina. Si el protocolo de autenticación no admite la autenticación automática, debe devolver el error ERROR_NOT_SUPPORTED.
RAS_EAP_FLAG_8021X_AUTH
Especifica que esta sesión se está ejecutando en un contexto inalámbrico.

[in] pwszPhonebook

Puntero a una cadena Unicode terminada en null que especifica la ruta de acceso completa del archivo de libreta telefónica (PBK). Si este parámetro es NULL, la función usa la libreta telefónica del sistema.

[in] pwszEntry

Puntero a una cadena Unicode terminada en null que especifica un nombre de entrada existente.

[in] pConnectionDataIn

Puntero a los datos específicos de la conexión almacenados actualmente en la entrada de la libreta de teléfonos.

[in] dwSizeOfConnectionDataIn

Especifica el tamaño de los datos específicos de la conexión almacenados actualmente en la entrada de la libreta de teléfonos.

[in] pUserDataIn

Puntero a los datos específicos del usuario almacenados actualmente para este usuario en el registro.

[in] dwSizeOfUserDataIn

Especifica el tamaño de los datos específicos del usuario almacenados actualmente para este usuario en el registro.

[out] ppUserDataOut

Puntero a un puntero que, al devolverse correctamente, apunta a los datos de identidad del usuario. Estos datos se pasarán al protocolo de autenticación en el miembro pUserData de PPP_EAP_INPUT durante la llamada a RasEapBegin.

El protocolo de autenticación debe asignar el búfer de memoria para los datos de identidad. RAS liberará esta memoria llamando a RasEapFreeMemory.

[out] pdwSizeOfUserDataOut

Puntero a una variable DWORD que recibe el tamaño de los datos a los que apunta el parámetro ppUserDataOut .

[out] ppwszIdentityOut

Puntero a un puntero que, al devolverse correctamente, apunta a una cadena Unicode terminada en null que identifica al usuario que solicita autenticación. Esta cadena se pasa al protocolo de autenticación en el miembro pszIdentity de PPP_EAP_INPUT durante la llamada a RasEapBegin.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es NO_ERROR.

Si la función no pudo asignar memoria para los datos de usuario, el valor devuelto debe ser ERROR_NOT_ENOUGH_MEMORY.

Si se llama a la función con la marca RAS_EAP_FLAG_NON_INTERACTIVE, pero debe invocar una interfaz de usuario para determinar la identidad del usuario, la función debe devolver ERROR_INTERACTIVE_MODE.

Si se produce un error en la función de alguna otra manera, el valor devuelto debe ser un código de error adecuado de Winerror.h, Raserror.h o Mprerror.h.

Comentarios

El archivo DLL que implementa RasEapGetIdentity y RasEapFreeMemory pueden admitir más de un protocolo de autenticación. El parámetro dwEapTypeId especifica para qué protocolo se va a invocar la interfaz de usuario de identidad.

Los protocolos IEEE 802.1X y PPP no llaman a RasEapGetIdentity sin una implementación de RasEapFreeMemory.

El protocolo de autenticación recibe los datos devueltos por RasEapGetIdentity en el miembro pUserData de PPP_EAP_INPUT durante RasEapBegin. Para almacenar los datos de este usuario en el Registro, el protocolo de autenticación debe establecer el miembro pUserData de PPP_EAP_OUTPUT para que apunte a los datos y el miembro fSaveUserData de PPP_EAP_OUTPUT en TRUE.

La función RAS llama a esta función, RasGetEapUserIdentity.

Si RasEapGetIdentity muestra una interfaz de usuario, la interfaz de usuario debe admitir WM_COMMAND mensajes en los que LOWORD(wParam) sea igual a IDCANCEL.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado raseapif.h

Consulte también

Funciones del EAP

Referencia del protocolo de autenticación extensible

Obtener la información de identidad

PPP_EAP_INPUT

RasEapFreeMemory

RasEapMakeMessage

RasGetEapUserIdentity