1

我有一个名为“windgrp”的 Windows 组,其中包含三个成员:

  • 管理员
  • testDomain.Administrator
  • 用户1

我有这段代码来显示组中的成员:

using (DirectoryEntry groupEntry = 
  new DirectoryEntry("WinNT://./" + userGroupName + ",group"))
{
    foreach (object member in (IEnumerable)groupEntry.Invoke("Members"))
    {
        using (DirectoryEntry memberEntry = new DirectoryEntry(member))
        {

            listbox.itms.add(memberentry.name);
        }
    }
}

这给了我结果:

  • 行政人员
  • 行政人员
  • 用户

没有显示第二个条目属于哪个域。

我怎样才能得到域名?

4

1 回答 1

1

你需要走上对象的层次结构。所以如果你有你的用户,你可以从那里开始递归,寻找满足你搜索条件的 shcema 类。

           public DirectoryEntry FindDomain(DirectoryEntry memberEntry) 
           {

                if(memberEntry.SchemaClassName.ToLower().Contains("domain") 
                {
                       return memberEntry;
                }   
                if(memberEntry.Parent !=null) 
                {
                         return FindDomain(memberEntry.Parent);
                }
                return null;
           }
于 2010-12-15T20:33:09.767 回答