【问题标题】:Search For All Locations In Active Dirrectory Via LDAP通过 LDAP 搜索 Active Directory 中的所有位置
【发布时间】:2014-03-26 02:03:09
【问题描述】:

我正在使用 PL/SQL 并在 LDAP(使用 AD 定义架构)中搜索所有位置。现在我可以应用一个简单的搜索并找到所有用户。每个用户都通过以下属性获得地址信息:

'physicalDeliveryOfficeName';
'streetAddress';
'l';--city
'st';--state
'postalCode';--zip code

但是,我想搜索与搜索人员不同的所有位置。是否可以搜索活动目录以查找位置(无需查找每个人)?如果是这样,搜索过滤器会是什么样子?我尝试了 objectClass=Physical-Location,DC=example,DC=com 并没有找到任何位置(超出架构)。我不确定这是因为存在安全问题,还是无法以这种方式查找位置。

【问题讨论】:

    标签: active-directory ldap


    【解决方案1】:

    您列出的是 AD 中的属性。您可以在搜索中返回属性并搜索特定值,但您将始终返回属性附加到的对象(在本例中为用户)。你对你搜索的细节有点了解,所以我会试一试。

    您可以只加载您正在寻找的位置属性,可以是州、城市等。

    var domain = "mydomain.com";
    var dn = "CN=Users,DC=mydomain,DC=com";
    
    var ldapSearchFilter = "(objectClass=user)";
    var connection = new LdapConnection(domain);
    var attributeList = new string[] { "physicalDeliveryOfficeName", "l", "st"};
    
    try
    {
        var searchRequest = 
                new SearchRequest(dn, ldapSearchFilter,
                                  SearchScope.OneLevel,
                                  attributeList);
    
    var searchResponse = 
                (SearchResponse)connection.SendRequest(searchRequest);
    
    var locationList = (from SearchResultEntry entry in searchResponse.Entries 
                        select entry.Attributes["physicalDeliveryOfficeName"][0].ToString())
                        .Distinct().ToList();
    
    catch (Exception ex)
    {
        //Handle errors
    }
    

    在这个例子中要记住一件事。如果属性未在 AD 中填充,WriteLine 将在尝试读取属性时抛出错误。如果您正在使用其他搜索类型(可能是 DirectorySearcher),您仍然应该能够仅加载您想要返回的属性。

    【讨论】:

    • 但我要问的是这会拉出所有位置的不同列表吗?有没有办法只搜索位置。我认为答案是否定的,但我不确定..
    • 好吧,我仍然不确定您所说的位置是什么意思,但是不,您不能只搜索我认为您的意思的位置。但是,您可以使用 linq 从此列表中获取不同的值。再次记住,如果其中一个用户的值未填充,它将引发异常。请参阅上面的编辑代码。
    • 我实际编写的代码都在 pl/sql 中(因此它可以在服务器上运行)但与我的公司实施相关所以我没有发布它..我以为不是可能只是拉一个位置列表,我只是想确认我没有错过任何东西。我确实从重复项中提取了不同的列表..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多