В моем приложении есть «Выбор аудитории», который позволяет вам искать группы и пользователей в Active Directory.Бит групп работает, но у меня проблема с битом пользователей.
Вот мой код:
Public Function GetGroups() As List(Of String)
Dim objADAM As DirectoryEntry ' Binding object.
Dim objGroupEntry As DirectoryEntry ' Group Results.
Dim objSearchADAM As DirectorySearcher ' Search object.
Dim objSearchResults As SearchResultCollection ' Results collection.
Dim strPath As String ' Binding path.
Dim result As New List(Of String)
strPath = "LDAP://MYDOMAINCONTROLLER.MYDOMAIN"
objADAM = New DirectoryEntry(strPath)
objADAM.RefreshCache()
Try
objSearchADAM = New DirectorySearcher(objADAM)
objSearchADAM.Filter = "(&(objectClass=" & AudienceSelector.searchtype.Text & ")(cn=" & AudienceSelector.TextBox1.Text & "))"
objSearchADAM.SearchScope = SearchScope.Subtree
If AudienceSelector.searchtype.Text = "user" Then
objSearchADAM.PropertiesToLoad.Add("SAMAccountName")
End If
objSearchResults = objSearchADAM.FindAll()
Catch e As Exception
End Try
Try
If objSearchResults.Count <> 0 Then
Dim objResult As SearchResult
For Each objResult In objSearchResults
objGroupEntry = objResult.GetDirectoryEntry
result.Add(objGroupEntry.Name)
Next objResult
End If
Catch e As Exception
End Try
Return result
End Function
Так что, если AudienceSelector.searchtype = user, списокпользователи возвращаются, но я получаю понятное имя и мне нужно имя SAMAccountName.Поэтому вместо 'john.smith' я получаю обратно 'John Smith'.
Я провел поиск и попытался добавить бит PropertiesToLoad, чтобы ввести SAMAcountName, но он просто дает мнедружеское имя каждый раз.
Кто-нибудь может увидеть, где я иду не так?
Заранее благодарен за любую помощь: -D