活动目录 Active Directory

来源:互联网 发布:java replace的效率 编辑:程序博客网 时间:2024/05/17 07:58

前些日子写了一个关于活动目录(Active Directory)的查询,总结了一些:开发语言是ASP.NET

1.首先记得要引用:using System.DirectoryServices;
                                    using System.DirectoryServices.ActiveDirectory;

2.我把活动目录的路径 登陆的用户名 密码放到了Web.config文件中

<appSettings>
  <add key="ADPath" value="LDAP://xa.xb/OU=xxx1,OU=xxxx2,OU=xxxxx3,DC=xa,DC=xb"/>

  其中xa.xb为你的域所在地址 OU=xxx1,OU=xxxx2为你的层级目录,且xxx1是最小的目录

<add key="ADUser" value="xxxx"/> 值为登陆这个域的用户名
    <add key="ADPassWord" value="xxxxx"/>值为登陆这个域的密码

 </appSettings>

3进行数据的查找,并把结果保存到一个表中

public static DataTable GetTable()
    {
        DataTable dt = new DataTable();//创建一个表
        try
        {
            DirectoryEntry myComany = new DirectoryEntry();
            myComany.Path = ConfigurationManager.AppSettings["ADPath"];//路径
            myComany.Username = ConfigurationManager.AppSettings["ADUser"];//用户名
            myComany.Password = ConfigurationManager.AppSettings["ADPassWord"];//密码

            创建查找
            DirectorySearcher mySearcher = new DirectorySearcher();
            mySearcher.SearchRoot = myComany;
            mySearcher.Filter = "(objectClass=user)";
            mySearcher.SearchScope = SearchScope.Subtree;
            mySearcher.PropertiesToLoad.Add("name");//所需属性
            mySearcher.PropertiesToLoad.Add("SAMAccountName");//;所需属性
            mySearcher.PropertiesToLoad.Add("distinguishedNAME");//所需属性
            SearchResultCollection myCollcet = mySearcher.FindAll();
            dt.Columns.Add("姓名", typeof(string));
            dt.Columns.Add("邮箱", typeof(string));
            dt.Columns.Add("单位", typeof(string));
            foreach (SearchResult myResult in myCollcet)
            {
                ResultPropertyCollection myProColl = myResult.Properties;
                DataRow dr = dt.NewRow();
                dr["姓名"] = myProColl["name"][0];
                dr["邮箱"] = myProColl["SAMAccountName"][0]";
                string[] sdis = myProColl["distinguishedNAME"][0].ToString().Split(',');
                dr["单位"] = sdis[1].Remove(0,3);
                dt.Rows.Add(dr);
            }
        }
        catch(Exception ex)
        {
            System.Web.HttpContext.Current.Response.Write("<Script Language='JavaScript'>alert('" + ex.Message.Trim('\n', '\r') + "')</Script>");
        }
        return dt;

}

4.数据绑定

 myTable = GetTable();

 GridView1.Datasoure=myTable;

 GridView1.DataBind();

这就是个比较简单的活动目录的应用,希望对大家有用。

 

原创粉丝点击