获取Windows组成员及其域名

时间:2010-12-15 19:32:02

标签: c# asp.net active-directory dns directoryentry

我有一个名为“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);
        }
    }
}

这给了我结果:

  • 管理员
  • 管理员
  • 用户

告诉我第二个条目属于哪个域。

如何获取域名?

1 个答案:

答案 0 :(得分:1)

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

           public DirectoryEntry FindDomain(DirectoryEntry memberEntry) 
           {

                if(memberEntry.SchemaClassName.ToLower().Contains("domain") 
                {
                       return memberEntry;
                }   
                if(memberEntry.Parent !=null) 
                {
                         return FindDomain(memberEntry.Parent);
                }
                return null;
           }