2010-01-14 3 views
0

J'essaie de sortir un utilisateur du répertoire Active en utilisant son nom d'utilisateur et son mot de passe. Est-ce que quelqu'un sait comment faire cela en C# en plus d'obtenir le groupe de sécurité auquel il appartient? Edit: Ce problème est devenu plus compliqué (les exigences ont changé sur moi après une réunion). Les groupes de sécurité sont imbriqués dans AD.Comment trouver un utilisateur et le groupe de sécurité auquel il appartient dans le répertoire actif avec son nom d'utilisateur et son mot de passe en C#?

Répondre

0

J'ai finalement trouvé la solution à ce problème. Le code dans cet article a fonctionné comme un charme. Nested AD Groups

0

Regardez dans la classe DirectoryEntry.

Voici un exemple:

Dim dirEntry As DirectoryEntry 
dirEntry = New DirectoryEntry("your LDAP info", "administrator", "password") 

Dim entries As DirectoryEntries = dirEntry.Children 
'' // Set login name and full name. 
Dim newUser As DirectoryEntry = entries.Add("CN=JONNY BOY", "User") 

newUser.Properties("sAMAccountName").Add("jboy") 
newUser.CommitChanges() 
newUser.Invoke("SetPassword", "hi2343145gfdtgwdt") 
Dim flags As Integer 

flags = CInt(newUser.Properties("userAccountControl").Value) 

'' //enable user below 
newUser.Properties("userAccountControl").Value = flags And Not &H2 

'' //disable user below 
newUser.Properties("userAccountControl").Value = flags Or &H1 


'' //lockout property 
Dim l As Long 
l = CType(newUser.Properties("lockoutTime").Value, Long) 

If l <> 0 Then 
    '' //account is locked out 

    '' //so how do we unlock it? 
    '' //we unlock it by setting it to 0 
    newUser.Properties("lockoutTime").Value = 0 
Else 
    '' //account is 0 it is NOT locked out 

End If 

newUser.CommitChanges() 

Dim j As DirectoryEntry = entries.Find("CN=JONNY BOY", "User") 
j.Properties("mail").Value = "[email protected]" 
j.CommitChanges() 
Questions connexes