DirectoryEntry类无法识别

时间:2016-11-15 23:32:23

标签: vb.net directoryservices

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中的用户名。目录条目类未被识别。我错过了什么吗?

1 个答案:

答案 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")