Authentification windows en local

Résolu
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016 - 18 mars 2008 à 16:47
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016 - 11 avril 2008 à 09:25
    Bonjour,

je cherche, en VB6, un moyen d'identifier un utilisateur en utilisant les comptes utilisateur créés en local. Est ce possible si oui comment? Je sais le faire pour un domaine mais j'arrive pas a toruver en local?!
si cela est possible est il aussi possible de récuperer le/les groupes auxquels appartiennent l'utilisateur...

Merci

3 réponses

cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016
11 avril 2008 à 09:25
j'ai enfin trouvé ce que je voulais :

voila la source original de la base de connaissance microsoft :

Const ADS_SECURE_AUTHENTICATION = &H1
strComputer = "WinNT://atl-ws-01"
strUser = "Administrator"
strPassword = "4rTGh2#1"

Set objDSO = GetObject("WinNT:")
Set objComputer = objDSO.OpenDSObject _
    (strComputer, strUser, strPassword, _
        ADS_SECURE_AUTHENTICATION OR ADS_USE_ENCRYPTION)

chez moi ça marche comme ça  :

    Set oNet = CreateObject("WScript.Network")
   'oNet.ComputerName : récupère le nom du PC local, login nom du user que l'on veut identifier...

    strGroup = "WinNT://" & oNet.ComputerName & "/" & login & ",user"
    Set oProvider = GetObject("WinNT:")
    Set oGroup = oProvider.OpenDSObject(strGroup, _
        oNet.ComputerName & "" & login, _
        Password, ADS_SECURE_AUTHENTICATION)

La dernière instruction renvoi une erreur si l'identification est mauvaise et rien si c'est ok. -> penser à mettre une gestion d'erreur...

Pour info un plus si ça interesse voici comment récupérer les groupes auxquels appartient l'utilisateur :

        Set oNet = CreateObject("WScript.Network")
    ' Bind to the local user object.
   Set objUser = GetObject("WinNT://" & oNet.ComputerName & "/" & login & ",user")



' Enumerate direct group memberships.
For Each objGroup In objUser.Groups
   msgbox objGroup.Name
Next

Voili si ça peu être utile...
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 mars 2008 à 21:14
Salut
Je ne sais pas trop ce que tu entends par 'identifier', mais :
- Le nom de la session (du login) : Regarde <cette source> trouvée en tapant 'session' dans le moteur de recherche du site
- Si tu sais le faire pour un domaine, tu y précises le nom du poste, genre [file://\\Poste4012\tralala \\Poste4012\tralala]
Essaye de remplacer avec seulement [file://\\.\tralala \\.\tralala], (double anti-splash + point) comme sous WMI

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016
18 mars 2008 à 21:42
par identifier j'entend rentrer le login/MDP d'un user windows et que la fonction me renvoit Ok... si c'est le bon MDP et que le compte existe... si en plus je peux récupérer les comptes de ce user ...


 


pour un domaine je sais le faire en attaquant l'annuaire LDAP mais je ne vois pas comment appliqué cela uniquement à un windows en local?
0
Rejoignez-nous