2016-11-15 99 views
0
Imports System 
Imports System.DirectoryServices 
Public Class Form1 
    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 
     Dim oroot As DirectoryEntry = New DirectoryEntry("LDAP://domain.com/OU=Departments,DC=domain,DC=com") 
     Dim osearcher As DirectorySearcher = New DirectorySearcher(oroot) 
     Dim oresult As SearchResultCollection 
     Dim result As SearchResult 
     Dim list As New List(Of String) 

我試圖建立一個下拉框來從我的客戶從AD查詢用戶名。目錄輸入類沒有被識別。我錯過了什麼嗎?DirectoryEntry類不被識別

+1

您是否將對System.DirectoryServices.dll的引用添加到您的項目中? – Sehnsucht

回答

0

您很有可能錯過了對System.DirectoryServices的引用。添加行Imports...是不夠的,你還必須添加一個引用。右鍵單擊解決方案資源管理器中項目下的參考,然後單擊添加參考。選擇System.DirectoryServices。如果您發現其他類的問題,可以通過查找該類的MSDN頁面找到程序集(參考)名稱。前兩件事應該總是「命名空間」(這是你需要在Imports...行),和Assembly這是你需要參考。

一些額外提示:

如果你有很多用戶對象,對DirectorySearcher設置PageSize,否則只會返回第一個1000的用戶對象(不知道這是確切的數字)。不一定無論你把它設置爲只要是> 0

osearcher.PageSize = 1000 

添加一些filters擺脫非用戶對象。

Dim osearcher As DirectorySearcher = New DirectorySearcher(oroot, _ 
    "(&(objectCategory=person)(objectClass=user))") 

使用PropertiesToLoad,因爲它會顯着提高您的查詢速度。

osearcher.PropertiesToLoad.Add("sAMAccountName") 
osearcher.PropertiesToLoad.Add("displayName")