C#读取AD域用户信息
生活随笔
收集整理的这篇文章主要介绍了
C#读取AD域用户信息
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
private const string domainName = "本机IP地址或域名";private const string adAdmin = "管理员帐号";private const string password = "管理员密码";private const string ouName = "子节点名";//只是一个子节点名private DataTable GetADUsers(){DataTable dt = new DataTable();dt.Columns.Add("sAMAccountName");//帐号dt.Columns.Add("displayName");//显示名称 dt.Columns.Add("description");//描述dt.Columns.Add("telephoneNumber");//电话号码dt.Columns.Add("mail"); //邮箱地址dt.Columns.Add("wWWHomePage"); //网页dt.Columns.Add("c"); //国家dt.Columns.Add("st"); //省/自治区dt.Columns.Add("l"); //市/县dt.Columns.Add("streetAddress"); //街道dt.Columns.Add("company");//公司dt.Columns.Add("department");//部门dt.Columns.Add("title");//职务dt.Columns.Add("manager");//我的经理DirectoryEntry adRoot = new DirectoryEntry("LDAP://" + domainName, adAdmin, password, AuthenticationTypes.Secure);DirectoryEntry ou = adRoot.Children.Find("OU=" + ouName);DirectorySearcher mySearcher = new DirectorySearcher(ou);//想搜索出所有,此处可省参数mySearcher.Filter = ("(objectClass=user)"); //user表示用户,group表示组foreach (System.DirectoryServices.SearchResult resEnt in mySearcher.FindAll()){//if (user.Properties.Contains("mail"))//{// dr["mail"] = user.Properties["mail"][0].ToString();//}//if (user.Parent.Name != string.Empty && user.Parent.Name.IndexOf('=') > -1)//{// //获取用户所在的组织单位// dr["OU"] = user.Parent.Name.Split('=')[1];//}DataRow dr = dt.NewRow();DirectoryEntry user = resEnt.GetDirectoryEntry();if (user.Properties.Contains("sAMAccountName")){dr["sAMAccountName"] = user.Properties["sAMAccountName"][0].ToString();}if (user.Properties.Contains("displayName")){dr["displayName"] = user.Properties["displayName"][0].ToString();}if (user.Properties.Contains("description")){dr["description"] = user.Properties["description"][0].ToString();}if (user.Properties.Contains("telephoneNumber")){dr["telephoneNumber"] = user.Properties["telephoneNumber"][0].ToString();}if (user.Properties.Contains("mail")){dr["mail"] = user.Properties["mail"][0].ToString();}if (user.Properties.Contains("wWWHomePage")){dr["wWWHomePage"] = user.Properties["wWWHomePage"][0].ToString();}if (user.Properties.Contains("c")){dr["c"] = user.Properties["c"][0].ToString();}if (user.Properties.Contains("st")){dr["st"] = user.Properties["st"][0].ToString();}if (user.Properties.Contains("l")){dr["l"] = user.Properties["l"][0].ToString();}if (user.Properties.Contains("streetAddress")){dr["streetAddress"] = user.Properties["streetAddress"][0].ToString();}if (user.Properties.Contains("company")){dr["company"] = user.Properties["company"][0].ToString();}if (user.Properties.Contains("department")){dr["department"] = user.Properties["department"][0].ToString();}if (user.Properties.Contains("title")){dr["title"] = user.Properties["title"][0].ToString();}if (user.Properties.Contains("manager")){dr["manager"] = user.Properties["manager"][0].ToString().Split(',')[0].Remove(0, 3);}dt.Rows.Add(dr);}return dt;}
转载于:https://www.cnblogs.com/RambleLife/p/8370669.html
总结
以上是生活随笔为你收集整理的C#读取AD域用户信息的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 某宝千万级规模高性能、高并发的网络架构
- 下一篇: Win8Metro(C#)数字图像处理-