从活动目录中获取“主目录”属性

时间:2013-11-24 13:18:27

标签: c# c#-4.0 active-directory

我正在尝试从活动目录中获取主目录属性值。

我使用了以下代码:

public static void GetExchangeServerByWwidLdap(string wwid)
{
    var exchange = string.Empty;

    using (var ds = new DirectorySearcher())
    {
        ds.SearchRoot = new DirectoryEntry("GC:something");
        ds.SearchScope = SearchScope.Subtree;

        //construct search filter
        string filter = "(&(objectclass=user)(objectcategory=person)";
        filter += "(employeeid=" + wwid + "))";
        ds.Filter = filter;

        string[] requiredProperties = new string[] { "homeDirectory", "homemta" };

        foreach (String property in requiredProperties)
            ds.PropertiesToLoad.Add(property);

        SearchResult result = ds.FindOne();
    }      
}

当我检查result对象数据时,我只看到2个值:“homemta”和“adspath”。 “homeDirectory”值在哪里?

我进入AD网站并搜索相同用户的相同值 - 通过网站我可以看到我搜索的所有数据,所以我假设我在某处有代码问题。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您正在尝试从全局目录中检索homeDirectory。

It’s not there.

你可以,例如通过ADsPath属性(即“LDAP:// ...”字符串)绑定到用户,然后查询该用户的homeDirectory属性。

或者,如果您只有一个域,则可以在该域内进行搜索,而不是搜索GC。在这种情况下,您将能够检索所需的所有属性。