Как найти пользователя и группу безопасности, к которой он принадлежит, в активном каталоге с его именем пользователя и паролем в C #? - PullRequest
0 голосов
/ 14 января 2010

Я пытаюсь вывести пользователя из Active Directory, используя его имя пользователя и пароль. Кто-нибудь знает, как сделать это в C # помимо получения группы безопасности, к которой они принадлежат?

Изменить: Эта проблема стала более сложной (требования изменились на меня после встречи). Группы безопасности вложены в AD.

Ответы [ 3 ]

0 голосов
/ 14 января 2010

Посмотрите здесь: Поиск того, к каким группам / спискам рассылки принадлежит конкретный пользователь в активной директории . Главный вопрос относится к tokenGroups собственности. Кстати, вам не нужно вводить пароль пользователя, просто это имя пользователя.

0 голосов
/ 19 января 2010

Я наконец нашел решение этой проблемы. Код в этой статье работал как шарм. Вложенные группы AD

0 голосов
/ 14 января 2010

Посмотрите на класс DirectoryEntry.

Вот пример:

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 = "jon@yahoo.com"
j.CommitChanges()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...