Compartir a través de


Función NPLogonNotify (npapi.h)

Nota:

Esta API ha quedado en desuso y se quitará en una versión futura.

MPR llama a esta función para notificar al administrador de credenciales que se ha producido un evento de inicio de sesión, lo que permite al administrador de credenciales devolver un script de inicio de sesión. La función NPLogonNotify se implementa mediante un archivo DLL del administrador de credenciales (vea Comentarios).

Sintaxis

DWORD NPLogonNotify(
  [in]  PLUID   lpLogonId,
  [in]  LPCWSTR lpAuthentInfoType,
  [in]  LPVOID  lpAuthentInfo,
  [in]  LPCWSTR lpPreviousAuthentInfoType,
  [in]  LPVOID  lpPreviousAuthentInfo,
  [in]  LPWSTR  lpStationName,
  [in]  LPVOID  StationHandle,
  [out] LPWSTR  *lpLogonScript
);

Parámetros

[in] lpLogonId

Puntero al identificador de la sesión que acaba de iniciar sesión.

[in] lpAuthentInfoType

Puntero a una cadena que identifica el tipo de estructura a la que apunta lpAuthentInfo.

Cuando Microsoft es el autenticador principal, se especifica una de las siguientes cadenas para los inicios de sesión interactivos y del controlador de servicio.

MSV1_0:Interactive
Kerberos:Interactive

[in] lpAuthentInfo

Puntero a una estructura que contiene las credenciales usadas para registrar correctamente al usuario a través del autenticador principal.

Cuando Microsoft es el autenticador principal (es decir, cuando lpAuthentifoType es "MSV1_0:Interactive" o "Kerberos:Interactive"), la estructura usada se MSV1_0_INTERACTIVE_LOGON o KERB_INTERACTIVE_LOGON.

[in] lpPreviousAuthentInfoType

Puntero a una cadena que identifica el tipo de estructura a la que apunta lpPreviousAuthentInfo. Si el puntero es NULL, no había información anterior. Los valores que se esperan aquí son los mismos que los de lpAuthentInfoType.

Cuando Microsoft es el autenticador principal, se especifica la siguiente cadena para los inicios de sesión interactivos y del controlador de servicio.

MSV1_0:Interactive

[in] lpPreviousAuthentInfo

Puntero a una estructura que contiene las credenciales usadas antes del cambio de información de autenticación. Se proporciona información previa si el usuario se vio obligado a cambiar la contraseña (u otra información de autenticación) antes de iniciar sesión. Si el usuario no se vio obligado a cambiar la información de autenticación, este puntero es NULL. Los valores que se esperan aquí son los mismos que los de lpAuthentInfo.

Cuando Microsoft es el autenticador principal, la estructura utilizada se MSV1_0_INTERACTIVE_LOGON o KERB_INTERACTIVE_LOGON.

[in] lpStationName

Puntero a una cadena que especifica el nombre de la estación en la que el usuario ha iniciado sesión. El nombre de la estación se puede usar para determinar si se puede obtener información adicional (específica del proveedor).

Cuando Microsoft es el autenticador principal, se especificará una de las siguientes cadenas.

Valor Significado
WinSta_0
Indica que se trata de un inicio de sesión interactivo a través de la estación de ventanas. En este caso, StationHandle es un HWND en el cuadro de diálogo primario.
SvcCtl
Indica que se trata de un inicio de sesión iniciado por el controlador de servicio. StationHandle no se usa en este caso.

[in] StationHandle

Valor de 32 bits cuyo significado depende del nombre (y, en consecuencia, del tipo) de la estación especificada en lpStationName.

Valor Significado
WinSta_0
Identificador del cuadro de diálogo propietario (hwndOwner) que se muestra actualmente en la pantalla.
SvcCtl
Datos aleatorios. No debe usarse.

[out] lpLogonScript

Puntero a una ubicación donde se puede devolver un puntero a una cadena terminada en null.

Una vez completada la función, este valor puede apuntar a una cadena terminada en null que contiene el nombre de un programa para ejecutarse más los parámetros que requiere el programa. LocalAlloc debe usarse para asignar la memoria de la cadena devuelta. MPR liberará esta memoria cuando ya no sea necesaria.

Valor devuelto

Si la función se realiza correctamente, la función devuelve WN_SUCCESS.

Si se produce un error en la función, devuelve un código de error, que puede ser uno de los siguientes.

Código devuelto Descripción
WN_NOT_SUPPORTED

NPLogonNotify no es compatible con el administrador de credenciales.

WN_NO_NETWORK
La red no está presente.
WN_FUNCTION_BUSY
El administrador de credenciales sigue inicializando y no está listo para llamarse.

Comentarios

Los administradores de credenciales implementan la función NPLogonNotify para recibir notificaciones cuando cambia la información de autenticación.

Cada administrador de credenciales puede devolver una única cadena de línea de comandos que se puede usar para ejecutar un script de inicio de sesión (la implementación no debe llamar a LogonUser ni cargar un perfil de usuario directamente). El administrador de credenciales asigna el búfer de esta cadena. MPR es responsable de liberarlo. La cadena devuelta en lpLogonScript debe contener toda la información necesaria para ejecutar el script como una línea de comandos pasada a CreateProcess.

Si la cadena requiere que el procesador de comandos procese la cadena, como en el caso de comandos o archivos por lotes, la cadena debe tener el prefijo cmd /C.

Los scripts de inicio de sesión se ejecutarán en el contexto del usuario cuando el perfil de usuario esté disponible. Sin embargo, las variables de entorno establecidas no serán globales y no estarán disponibles para el shell inicial (por ejemplo, Administrador de programas) o cualquier otro programa que se ejecute en nombre del usuario.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado npapi.h

Consulte también

CreateProcess

LocalAlloc

MSV1_0_INTERACTIVE_LOGON

NPGetCaps

NPPasswordChangeNotify