📜  .net directorysearcher 获取经理帐户名 - C# (1)

📅  最后修改于: 2023-12-03 15:29:07.767000             🧑  作者: Mango

使用'.NET DirectorySearcher获取经理账户名 - C#'

在.NET中,可以使用DirectorySearcher类来搜索Active Directory中的对象。该类允许您指定搜索条件并检索匹配这些条件的对象。您可以使用DirectorySearcher类获取具有特定属性值(如部门、职位、电话号码等)的用户账户信息。在本文中,我们将讨论如何使用.NET DirectorySearcher获取经理账户名。

准备工作

在使用DirectorySearcher类搜索Active Directory之前,您需要安装并配置Active Directory域服务。确保您具备授权和Admin权限,以便访问和搜索Active Directory。您还需要添加System.DirectoryServices程序集(这是由.NET Framework提供的)以便在代码中使用DirectorySearcher类。在Visual Studio中,可以通过右键单击项目并选择“添加引用”选项来添加程序集。

使用DirectorySearcher类搜索Active Directory

以下示例演示如何使用DirectorySearcher类搜索Active Directory中的用户并获取其经理账户名。

string managerName = "";

//创建DirectoryEntry对象并指定Active Directory域路径
DirectoryEntry myDirectoryEntry = new DirectoryEntry("LDAP://mydomain.com");

//将DirectorySearcher对象附加到DirectoryEntry对象中
DirectorySearcher myDirectorySearcher = new DirectorySearcher(myDirectoryEntry);

//指定过滤条件以仅获取用户账户
myDirectorySearcher.Filter = "(&(objectCategory=person)(objectClass=user))";

//指定要返回的属性,包括经理的账户名称
myDirectorySearcher.PropertiesToLoad.Add("manager");

//执行搜索并获取结果
SearchResultCollection mySearchResultCollection = myDirectorySearcher.FindAll();

//遍历搜索结果并从中提取经理的账户名称
foreach (SearchResult mySearchResult in mySearchResultCollection)
{
    try
    {
        managerName = mySearchResult.Properties["manager"][0].ToString();
    }
    catch (Exception ex)
    {
        //处理异常
    }
}

//打印经理的账户名
Console.WriteLine("经理的账户名是:" + managerName);

在这个示例中,我们首先创建了一个DirectoryEntry对象并指定Active Directory域路径。然后,我们将DirectorySearcher对象附加到DirectoryEntry对象中。使用Filter属性,我们指定了一个过滤条件,以确保仅获取用户账户。我们还指定了要返回的属性,包括经理的账户名称。最后,我们执行搜索并遍历搜索结果,从中提取经理的账户名称。

结论

.NET中的DirectorySearcher类使搜索和检索Active Directory对象变得非常容易和高效。借助该类,您可以轻松地检索具有特定属性值的用户账户信息,例如经理账户名称。在本文中,我们提供了一个示例,演示了如何使用.NET DirectorySearcher获取经理账户名。