0

我在弄清楚这一点时遇到了一些麻烦,这就是我想要做的。我正在尝试填充一个列表框,其中“名称”作为显示的文本,“cn”作为 Active Directory 中特定组的值。我的代码在下面,它没有抛出任何错误,只是没有用任何东西填充列表框。我的猜测是我没有正确添加每个结果,但我很难过。

Dim search As DirectorySearcher = New DirectorySearcher(entry)
            search.PropertiesToLoad.Add("cn")
            search.PropertiesToLoad.Add("name")
            search.PropertiesToLoad.Add("memberOf")
            search.Filter = "(memberOf=SAO Computer Grp)"
            Dim result As SearchResultCollection = search.FindAll()
            Dim ct As Integer = result.Count                
            For i = 0 To ct
                lstEmail.DataTextField = result.PropertiesLoaded("name")
                lstEmail.DataValueField = result.PropertiesLoaded("cn")
                lstEmail.DataSource = result.Item(i)
                lstEmail.DataBind()
            Next
4

1 回答 1

1

尝试以下操作:

Dim search As DirectorySearcher = New DirectorySearcher(entry)

search.PropertiesToLoad.Add("cn")
search.PropertiesToLoad.Add("name")
search.PropertiesToLoad.Add("memberOf")

search.Filter = "(memberOf=SAO Computer Grp))"

Dim result As SearchResultCollection = search.FindAll()
Dim de As DirectoryEntry
Dim firstName, lastName As String

For Each ADUsers As SearchResult In result
    de = ADUsers.GetDirectoryEntry()
    firstName = "NA"
    lastName = "NA"

    If de.Properties("name") IsNot Nothing 
       AndAlso de.Properties("name").Count > 0 Then
            firstName = de.Properties("name")(0).ToString()
    End If

    If de.Properties("cn") IsNot Nothing 
       AndAlso de.Properties("cn").Count > 0 Then
           lastName = de.Properties("cn")(0).ToString()
    End If

    lstEmail.Items.Add(New ListItem(firstName, lastName))
Next
于 2014-06-18T15:32:07.490 回答