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中的用户名。目录条目类未被识别。我错过了什么吗?
答案 0 :(得分:0)
您很可能错过了对System.DirectoryServices
的引用。添加行Imports...
是不够的,您还必须添加引用。右键单击解决方案资源管理器中项目下的“引用”,然后单击“添加引用”。选择System.DirectoryServices
。如果您在其他类中看到此问题,可以通过查找该类的MSDN页面来查找程序集(引用)名称。最重要的两件事应该始终是“命名空间”(这是Imports...
行所需的),以及Assembly
这是您需要引用的内容。
一些额外提示:
如果您有很多用户对象,请在PageSize
上设置DirectorySearcher
,否则它只返回前1,000个用户对象(不确定这是否是确切数字)。只要它是>并不一定重要你设置它。 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")