Récupérer le SID de l'utilisateur courant [Résolu]

Korb3ns 10 Messages postés dimanche 12 février 2006Date d'inscription 2 décembre 2007 Dernière intervention - 6 nov. 2007 à 16:08 - Dernière réponse : Korb3ns 10 Messages postés dimanche 12 février 2006Date d'inscription 2 décembre 2007 Dernière intervention
- 12 nov. 2007 à 19:40
Bonjour à tous,

je cherche à récupérer le SID de l'utilisateur courant...

Est-ce qu'il existe une fonction Windows permettant de récupérer la valeur sans avoir à parcourir le registre ?

Je sais qu'on peut trouver sa valeur à l'adresse suivante : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\

J'ai déjà tenté d'implémenter différents codes trouvé sur le site MSDN ainsi que la fonction CopySid() mais je n'obtient pas de SID...

Merci d'avance pour votre aide !
Afficher la suite 

Votre réponse

8 réponses

Korb3ns 10 Messages postés dimanche 12 février 2006Date d'inscription 2 décembre 2007 Dernière intervention - 6 nov. 2007 à 18:18
0
Merci
Salut juju12,

Merci beaucoup pour la rapidité de ta réponse...

Je n'ai malheureusement pas le temps d'essayer LookupAccountName avant jeudi matin, je validerais ta réponse dès que possible...
Commenter la réponse de Korb3ns
Korb3ns 10 Messages postés dimanche 12 février 2006Date d'inscription 2 décembre 2007 Dernière intervention - 8 nov. 2007 à 00:58
0
Merci
Merci pour ton aide juju12,






effectivement la fonction LookupAccountName permet la récupération du SID...






Je n'ai pas réussi à convertir ma structure SID en string, après de nombreux essais et recherche sur Internet, je n'ai pas réussi à trouver les fonctions ConvertSidToStringSid() et GetTextualSid() (j'ai pourtant ajouté les déclarations dans mon fichier header ainsi que la librairie advapi32)...






Du coup je vais utiliser le numéro de série du disque dur, qui est bien plus facile à obtenir...






Et le résultat est le même, j'obtiens un ID unique, je le couple juste avec le nom d'utilisateur afin de pouvoir différencier chaque session...






Merci pour ton aide !






Bonne soirée !
Commenter la réponse de Korb3ns
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 8 nov. 2007 à 17:07
0
Merci
Ben ConvertSidToStringSid le header est sddl.h et la lib advapi32.lib effectivement.
GetTextualSid par contre m'a pas l'air d'être une API; un coup d'oeil sur le net, elle est à chaque fois implémentée. Peut-être sous vista...en tous cas pas dans le SDK 2003.

Mais bon si t'as autre chose qui marche tant mieux.
Commenter la réponse de cs_juju12
Korb3ns 10 Messages postés dimanche 12 février 2006Date d'inscription 2 décembre 2007 Dernière intervention - 8 nov. 2007 à 17:25
0
Merci
J'ai pourtant inclu sddl.h dans le header de ma classe et ajouté la librairie advapi32.dll, pourtant Visual Studio n'avait pas l'air de connaître cette méthode...

Vu que je dois bientôt rendre mon projet, et compte tenu du fait que j'ai encore pas mal de travail à faire, je n'ai pas le temps de m'étaler trop longtemps sur ce problème...

Oui je passe par le numéro de série du disque dur, mais j'ai quand même une question :

Pour le moment j'ai mit en dur la lettre logique du disque dur, mais comme il est possible d'installer Windows sur n'importe quel partition, il se peut que C: soit un lecteur de carte où autre...

Il y a un moyen de trouver la lettre logique d'un disque dur (sans toute les parcourir) ?

Pour le moment je l'ai implémenté de la manière suivante :





DWORD numeroSerie;





GetVolumeInformation( "c:\", 0, 0, &numeroSerie, 0, 0, 0, 0 );
Commenter la réponse de Korb3ns
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 9 nov. 2007 à 20:35
0
Merci
Tu  peux peut-être utiliser GetLogicalDriveStrings. Sinon un simple GetModuleFileName et tu prends le début de la chaîne retourné.
Commenter la réponse de cs_juju12
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 9 nov. 2007 à 20:36
0
Merci
retournée
Commenter la réponse de cs_juju12
Korb3ns 10 Messages postés dimanche 12 février 2006Date d'inscription 2 décembre 2007 Dernière intervention - 12 nov. 2007 à 19:40
0
Merci
Merci pour tes conseils !

Dans le même style d'idée que toi je vais me servir de la variable d'environnement HOMEDRIVE qui me retourne directement le chemin du disque principal (C: dans mon cas)...

Merci beaucoup pour ton aide, bonne soirée !
Commenter la réponse de Korb3ns
cs_juju12 968 Messages postés samedi 3 avril 2004Date d'inscription 4 mars 2010 Dernière intervention - 6 nov. 2007 à 18:03
-2
Merci
Essaie LookupAccountName, cette fonction renvoie le SID du compte spécifié; cf MSDN ou SDK pour plus d'infos...
Commenter la réponse de cs_juju12

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.