一个WEBPART主要也是.NET

而读取OU主要涉及到AD的对象.

主要步骤是
1.引用System.DirectoryServices;
2.Page_Load代码如下:
            TreeNode node = new TreeNode();//新建立一个树结点
            node.Text = "泉州移动";//设置属性
            node.Value = "Ou=泉州移动";//设置属性,他将从OU根结点读取.
            TreeView1.Nodes.Add(node);//将该结点加到树中.
            GetOu("OU=泉州移动", 4, node, 1);//调用该递归函数,4表示层级.

2.GETOU代码如下
public void GetOu(string ouname, int amstr, TreeNode nodetmp,int step)
    {
        //获取AD的对象
        //搜索组织单位
        if (amstr > 0)
        {
            DirectoryEntry entry = new DirectoryEntry("LDAP://10.49.28.8", "administrator", "密码改成自己的");
            //获取子结点
            System.DirectoryServices.DirectoryEntry subentry = entry.Children.Find(ouname, "organizationalUnit");//注意后面一个参数代表的是组织单位,即OU


            //对子对象进行循环
            foreach (DirectoryEntry res in subentry.Children)
            {
                if (res.Name.Substring(0, 3) == "OU=")//判断是否为OU
                {
                    //增加子结点
                    TreeNode node2 = new TreeNode();
                    node2.Text = res.Name.ToString().Replace("OU=", "");
                    node2.Value = res.Name.ToString() + "," + ouname;
                    nodetmp.ChildNodes.Add(node2);
                    //递归调用
                    GetOu(res.Name.ToString() + "," + ouname, amstr-1, node2, step);
                }
            }
        }

    }
posted on 2009-09-09 11:56  volitation  阅读(125)  评论(0)    收藏  举报