如何在c# .net中从活动目录中提取用户的城市位置

本文关键字:提取 用户 位置 城市 活动 net | 更新日期: 2023-09-27 18:13:15

我想对AD做一个LDAP查询,以拉出用户的位置(城市)。这是我整理的内容:

    public static string GetUserLocation(string userName)
    {            
        string userLoc = "";
        DirectoryEntry entry = new DirectoryEntry("LDAP://FTLAD04.corp.myDomain.com");
        DirectorySearcher dSearch = new DirectorySearcher(entry);
        dSearch.Filter = "(&(objectClass=user)(l=" + userName + "))";
        dSearch.PropertiesToLoad.Add("city");
        SearchResult result = dSearch.FindOne();
        userLoc = result.ToString();
        entry.Close();
        return userLoc;
    }

我的搜索结果一直返回null,有人可以帮助我指出正确的方向吗?谢谢你!

如何在c# .net中从活动目录中提取用户的城市位置

我认为你的错误是你搜索的位置,但设置用户名作为值…

您应该搜索用户名-并获取该用户的位置:

public static string GetUserLocation(string userName)
{            
    string userLoc = "";
    DirectoryEntry entry = new DirectoryEntry("LDAP://FTLAD04.corp.myDomain.com");
    DirectorySearcher dSearch = new DirectorySearcher(entry);
    dSearch.Filter = "(&(objectClass=user)(samAccountName=" + userName + "))";
    dSearch.PropertiesToLoad.Add("l");
    SearchResult result = dSearch.FindOne();
    if(result != null)
    {
       if(result.Properties["l"] != null && result.Properties["l"].Count > 0)
       {
          string location =  result.Properties["l"][0].ToString();
       }
    }
    return userLoc;
}

在AD中,用户的城市(您在Active Directory用户&

DirectoryEntryl属性。

有关所有属性的完整列表以及它们如何从ADU&C工具映射到实际的LDAP对象和属性,请参阅Robert Mueller的网站