LookupAccountNameA, fonction (winbase.h)

La fonction LookupAccountName accepte le nom d’un système et d’un compte comme entrée. Il récupère un identificateur de sécurité (SID) pour le compte et le nom du domaine sur lequel le compte a été trouvé.

La fonction LsaLookupNames peut également récupérer des comptes d’ordinateur.

Syntaxe

BOOL LookupAccountNameA(
  [in, optional]  LPCSTR        lpSystemName,
  [in]            LPCSTR        lpAccountName,
  [out, optional] PSID          Sid,
  [in, out]       LPDWORD       cbSid,
  [out, optional] LPSTR         ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

Paramètres

[in, optional] lpSystemName

Pointeur vers une chaîne de caractères terminée par null qui spécifie le nom du système. Cette chaîne peut être le nom d’un ordinateur distant. Si cette chaîne a la valeur NULL, la traduction du nom du compte commence sur le système local. Si le nom ne peut pas être résolu sur le système local, cette fonction tente de résoudre le nom à l’aide de contrôleurs de domaine approuvés par le système local. En règle générale, spécifiez une valeur pour lpSystemName uniquement lorsque le compte se trouve dans un domaine non approuvé et que le nom d’un ordinateur de ce domaine est connu.

[in] lpAccountName

Pointeur vers une chaîne terminée par null qui spécifie le nom du compte.

Utilisez une chaîne complète au format domain_name\user_name pour vous assurer que LookupAccountName recherche le compte dans le domaine souhaité.

[out, optional] Sid

Pointeur vers une mémoire tampon qui reçoit la structure SID qui correspond au nom de compte pointé par le paramètre lpAccountName . Si ce paramètre a la valeur NULL, cbSid doit être égal à zéro.

[in, out] cbSid

Pointeur vers une variable. Lors de l’entrée, cette valeur spécifie la taille, en octets, de la mémoire tampon Sid . Si la fonction échoue parce que la mémoire tampon est trop petite ou si cbSid est égal à zéro, cette variable reçoit la taille de mémoire tampon requise.

[out, optional] ReferencedDomainName

Pointeur vers une mémoire tampon qui reçoit le nom du domaine dans lequel le nom du compte est trouvé. Pour les ordinateurs qui ne sont pas joints à un domaine, cette mémoire tampon reçoit le nom de l’ordinateur. Si ce paramètre a la valeur NULL, la fonction retourne la taille de mémoire tampon requise.

[in, out] cchReferencedDomainName

Pointeur vers une variable. Lors de l’entrée, cette valeur spécifie la taille, en TCHAR, de la mémoire tampon ReferencedDomainName . Si la fonction échoue parce que la mémoire tampon est trop petite, cette variable reçoit la taille de mémoire tampon requise, y compris le caractère null de fin. Si le paramètre ReferencedDomainName a la valeur NULL, ce paramètre doit être égal à zéro.

[out] peUse

Pointeur vers un SID_NAME_USE type énuméré qui indique le type du compte lorsque la fonction retourne.

Valeur retournée

Si la fonction réussit, la fonction retourne une valeur différente de zéro.

Si la fonction échoue, elle retourne zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

La fonction LookupAccountName tente de trouver un SID pour le nom spécifié en vérifiant d’abord une liste de SID connus. Si le nom ne correspond pas à un SID bien connu, la fonction vérifie les comptes locaux intégrés et définis par l’administration. Ensuite, la fonction vérifie le domaine principal. Si le nom est introuvable, les domaines approuvés sont vérifiés.

Utilisez des noms de comptes complets (par exemple, domain_name\user_name) au lieu de noms isolés (par exemple, user_name). Les noms complets sont non ambigus et offrent de meilleures performances lorsque la recherche est effectuée. Cette fonction prend également en charge les noms DNS complets (par exemple, example.example.com\user_name) et les noms d’utilisateur principaux (UPN) (par exemple, someone@example.com).

En plus de rechercher des comptes locaux, des comptes de domaine locaux et des comptes de domaine explicitement approuvés, LookupAccountName peut rechercher le nom de n’importe quel compte dans n’importe quel domaine de la forêt.

Notes

L’en-tête winbase.h définit LookupAccountName en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

Vue d’ensemble du contrôle d’accès

Fonctions Access Control de base

EqualPrefixSid

GetUserName

LookupAccountSid

LsaLookupNames2

SID

SID_NAME_USE