我们知道,在AD中可以创建组织结构(Organizational Unit,以下称OU), 在OU中可以管理AD的组和用户。有时候需要向用户展示组织的树形结构,这里是一个常用的办法,就是使用递归的方式,从AD的根节点开始,递归查找子节点,然后构造一棵OU树。
操作AD,首先需要引用这两个程序集:
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
然后定义一个类,作为OU树节点:
public class OuTreeNode
{
public string Name { get; set; }
public string Id { get; set; }
private List<OuTreeNode> _children = new List<OuTreeNode>();
public List<OuTreeNode> Children
{
get { return _children; }
set { _children = value; }
}
}
这个类的名字是OuTreeNode,其中保存OU节点的基本信息,这里定义了OU的name,id,和子节点的列表。定义了这个类之后,我们就可以遍历AD的所有OU,然后将OU的基本信息保存在这个类中,最后构造出一棵树