Partager via


Fonction NPLogonNotify (npapi.h)

Notes

Cette API a été dépréciée et sera supprimée dans une version ultérieure.

MPR appelle cette fonction pour informer le gestionnaire d’informations d’identification qu’un événement d’ouverture de session s’est produit, ce qui permet au gestionnaire d’informations d’identification de retourner un script d’ouverture de session. La fonction NPLogonNotify est implémentée par une DLL du gestionnaire d’informations d’identification (voir Remarques).

Syntaxe

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

Paramètres

[in] lpLogonId

Pointeur vers l’identificateur de la session qui vient de se connecter.

[in] lpAuthentInfoType

Pointeur vers une chaîne qui identifie le type de structure pointé vers lpAuthentInfo.

Lorsque Microsoft est l’authentificateur principal, l’une des chaînes suivantes est spécifiée pour les ouvertures de session interactives et de contrôleur de service.

MSV1_0:Interactive
Kerberos:Interactive

[in] lpAuthentInfo

Pointeur vers une structure qui contient les informations d’identification utilisées pour enregistrer correctement l’utilisateur via l’authentificateur principal.

Lorsque Microsoft est l’authentificateur principal (autrement dit, lorsque lpAuthentifoType est « MSV1_0:Interactive » ou « Kerberos:Interactive »), la structure utilisée est MSV1_0_INTERACTIVE_LOGON ou KERB_INTERACTIVE_LOGON.

[in] lpPreviousAuthentInfoType

Pointeur vers une chaîne qui identifie le type de structure pointé vers lpPreviousAuthentInfo. Si le pointeur a la valeur NULL, il n’y avait aucune information précédente. Les valeurs attendues ici sont les mêmes que celles de lpAuthentInfoType.

Lorsque Microsoft est l’authentificateur principal, la chaîne suivante est spécifiée pour les ouvertures de session interactives et de contrôleur de service.

MSV1_0:Interactive

[in] lpPreviousAuthentInfo

Pointeur vers une structure qui contient les informations d’identification utilisées avant que les informations d’authentification ne changent. Des informations préalables sont fournies si l’utilisateur a été forcé de modifier le mot de passe (ou d’autres informations d’authentification) avant de se connecter. Si l’utilisateur n’a pas été obligé de modifier les informations d’authentification, ce pointeur a la valeur NULL. Les valeurs attendues ici sont les mêmes que celles de lpAuthentInfo.

Lorsque Microsoft est l’authentificateur principal, la structure utilisée est MSV1_0_INTERACTIVE_LOGON ou KERB_INTERACTIVE_LOGON.

[in] lpStationName

Pointeur vers une chaîne qui spécifie le nom de la station à laquelle l’utilisateur s’est connecté. Le nom de la station peut être utilisé pour déterminer si des informations supplémentaires (spécifiques au fournisseur) peuvent être obtenues.

Lorsque Microsoft est l’authentificateur principal, l’une des chaînes suivantes est spécifiée.

Valeur Signification
WinSta_0
Indique qu’il s’agit d’une ouverture de session interactive via la station de fenêtre. Dans ce cas, StationHandle est un HWND de la boîte de dialogue parente.
SvcCtl
Indique qu’il s’agit d’une ouverture de session lancée par le contrôleur de service. StationHandle n’est pas utilisé dans ce cas.

[in] StationHandle

Valeur 32 bits dont la signification dépend du nom (et, par conséquent, du type) de la station spécifiée dans lpStationName.

Valeur Signification
WinSta_0
Handle de la boîte de dialogue propriétaire (hwndOwner) actuellement affichée à l’écran.
SvcCtl
Données aléatoires. Ne pas utiliser.

[out] lpLogonScript

Pointeur vers un emplacement où un pointeur vers une chaîne terminée par null peut être retourné.

Une fois la fonction terminée, cette valeur peut pointer vers une chaîne terminée par null qui contient le nom d’un programme à exécuter, ainsi que tous les paramètres requis par le programme. LocalAlloc doit être utilisé pour allouer la mémoire pour la chaîne retournée. Cette mémoire est libérée par MPR lorsqu’elle n’est plus nécessaire.

Valeur retournée

Si la fonction réussit, la fonction retourne WN_SUCCESS.

Si la fonction échoue, elle retourne un code d’erreur, qui peut être l’un des éléments suivants.

Code de retour Description
WN_NOT_SUPPORTED

NPLogonNotify n’est pas pris en charge par le gestionnaire d’informations d’identification.

WN_NO_NETWORK
Le réseau n’est pas présent.
WN_FUNCTION_BUSY
Le gestionnaire d’informations d’identification est toujours en cours d’initialisation et n’est pas prêt à être appelé.

Notes

La fonction NPLogonNotify est implémentée par les gestionnaires d’informations d’identification pour recevoir des notifications lorsque les informations d’authentification changent.

Chaque gestionnaire d’informations d’identification est autorisé à renvoyer une chaîne de ligne de commande unique qui peut être utilisée pour exécuter un script d’ouverture de session (l’implémentation ne doit pas appeler LogonUser ni charger un profil utilisateur directement). La mémoire tampon de cette chaîne est allouée par le gestionnaire d’informations d’identification. MPR est responsable de sa libération. La chaîne retournée dans lpLogonScript doit contenir toutes les informations nécessaires pour exécuter le script en tant que ligne de commande passée à CreateProcess.

Si la chaîne nécessite que le processeur de commandes traite la chaîne, comme dans le cas des commandes ou des fichiers batch, la chaîne doit être précédée de cmd /C.

Les scripts d’ouverture de session sont exécutés dans le contexte utilisateur lorsque le profil utilisateur est disponible. Toutefois, les variables d’environnement qui sont définies ne seront pas globales et ne seront pas disponibles pour l’interpréteur de commandes initial (par exemple, Program Manager) ou tout autre programme exécuté au nom de l’utilisateur.

Spécifications

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête npapi.h

Voir aussi

CreateProcess

LocalAlloc

MSV1_0_INTERACTIVE_LOGON

NPGetCaps

NPPasswordChangeNotify