fonction Msv1_0SubAuthenticationRoutine (subauth.h)
La fonction Msv1_0SubAuthenticationRoutine effectue une authentification spécifique au client/serveur.
Les informations d’identification et les informations d’identification du principal de sécurité provenant de la base de données du Gestionnaire de comptes de sécurité (SAM) sont transmises à cette fonction pour l’authentification.
Cette fonction est implémentée par des DLL de package de sous-authentification personnalisées à utiliser avec le package d’authentification MSV1_0.
La fonction Msv1_0SubAuthenticationRoutine est appelée uniquement pour une authentification non interactive, uniquement sur le serveur d’authentification où réside le compte, et uniquement si une DLL de sous-authentification est inscrite sous la clé appropriée dans le Registre.
Syntaxe
NTSTATUS Msv1_0SubAuthenticationRoutine(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
Paramètres
[in] LogonLevel
Spécifie le niveau d’informations données dans le paramètre LogonInformation . Ce paramètre est normalement défini sur NetlogonInteractiveInformation.
[in] LogonInformation
Pointeur vers une structure NETLOGON_LOGON_IDENTITY_INFO . Les membres de cette structure contiennent des informations sur l’utilisateur qui se connecte. Le membre LogonDomainName de cette structure est ignoré.
[in] Flags
facultatif. Contient des indicateurs qui décrivent les circonstances de l’ouverture de session. Ce paramètre peut prendre les valeurs suivantes.
[in] UserAll
Pointeur vers une structure de USER_ALL_INFORMATION qui contient la description de l’utilisateur telle qu’elle est retournée à partir de la base de données SAM.
[out] WhichFields
Retourne les membres de la structure USER_ALL_INFORMATION qui doivent être réécrits dans la base de données SAM. Ces membres ne seront écrits que si Msv1_0SubAuthenticationRoutine retourne la réussite à l’appelant. Seule la valeur suivante est valide.
Valeur | Signification |
---|---|
|
Réécrivez les données contenues dans le membre Parameters de la structure UserAll dans la base de données SAM.
Si la taille de la mémoire tampon UNICODE_STRING du membre Parameters est modifiée, Msv1_0SubAuthenticationRoutine devez supprimer la mémoire tampon à l’aide de la fonction MIDL_user_free et la réallouer à l’aide de la fonction MIDL_user_allocate . |
[out] UserFlags
Valeurs à retourner à partir du paramètre ProfileBuffer de la fonction LsaLogonUser, lorsqu’il contient une structure MSV1_0_LM20_LOGON_PROFILE. Les valeurs suivantes sont actuellement définies pour le membre UserFlags de la structure.
Valeur | Signification |
---|---|
|
Il s’agit d’une ouverture de session d’invité. |
|
L’appelant n’a pas spécifié d’informations d’identification chiffrées. |
[out] Authoritative
Pointeur vers une valeur booléenne qui indique si le status retourné est un status faisant autorité qui doit être retourné à l’appelant d’origine. Si la valeur retournée est FALSE, la demande d’ouverture de session peut être réessayé sur un autre contrôleur de domaine. Ce paramètre doit retourner des informations valides, quelle que soit la valeur de retour de l’appel de fonction.
[out] LogoffTime
Pointeur vers une valeur qui reçoit l’heure à laquelle l’utilisateur doit se déconnecter du système. Cette heure est utilisée pour contrôler la durée de vie de l’ouverture de session et est spécifiée sous la forme d’une heure système relative GMT.
[out] KickoffTime
Pointeur vers une valeur qui reçoit l’heure à laquelle l’utilisateur doit être déconnecté du système. Cette heure est utilisée pour contrôler la durée de vie de l’ouverture de session et est spécifiée sous la forme d’une heure système relative GMT. Si l’utilisateur ne doit pas être déconnecté, spécifiez une grande valeur positive, telle que :
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Valeur retournée
Cette fonction doit retourner l’une des valeurs suivantes.
Code de retour | Description |
---|---|
|
Il n’y a pas eu d’erreur. |
|
Le compte est désactivé. |
|
Le compte a expiré. |
|
Le compte est verrouillé. |
|
LogonLevel n’est pas valide. |
|
L’utilisateur n’est pas autorisé à se connecter pour le moment. |
|
L’utilisateur n’est pas autorisé à se connecter à la station de travail spécifiée. |
|
L’utilisateur spécifié n’a pas de compte. |
|
Le mot de passe a expiré. |
|
Le compte est marqué pour indiquer que le mot de passe doit être modifié lors de la prochaine ouverture de session. |
|
Le mot de passe n’était pas valide. |
Remarques
Cette fonction est appelée par le package d’authentification MSV1_0 si une partie du paramètre AuthenticationInformation indique que la sous-authentification doit être effectuée et si une DLL de sous-authentification qui exporte la fonction Msv1_0SubAuthenticationRoutine est correctement inscrite sur la station de travail.
Le package d’authentification MSV1_0 ne prend pas en charge la sous-authentification pour les ouvertures de session interactives, qui nécessitent la structure MSV1_0_INTERACTIVE_LOGON . Les ouvertures de session réseau, qui nécessitent la structure MSV1_0_LM20_LOGON , peuvent utiliser la sous-authentification.
La fonction Msv1_0SubAuthenticationRoutine est appelée une fois que le contrôleur de domaine approprié a été localisé et que toutes les informations sur le principal de sécurité à authentifier ont été récupérées à partir de la base de données SAM. Lorsque la sous-authentification est utilisée, l’authentification est la responsabilité de la DLL de sous-authentification et doit être effectuée par la fonction Msv1_0SubAuthenticationRoutine exportée par cette DLL.
Configuration requise
Condition requise | Valeur |
---|---|
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 | subauth.h |