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; }

  

C#读取AD域用户信息的更多相关文章

  1. python-ldap修改AD域用户密码(CA+SSL)

    代码连接:https://github.com/raykuan/ldap-notes 使用python的ldap模块连接AD服务器,有两种方式: 非加密:con = ldap.initialize(' ...

  2. JAVA 通过LDAP获取AD域用户及组织信息

    因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的A ...

  3. AD 域服务简介(二)- Java 获取 AD 域用户

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 一.前言 先简单简单回顾上一篇 ...

  4. AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...

  5. gitlab用户登录与AD域用户集成

    ---恢复内容开始--- 编辑gitlab.rb文件 sudo vi /etc/gitlab/gitlab.rb 下图是我编辑的内容示例(仅供参考): 编辑以下内容: gitlab_rails['ld ...

  6. SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)

    由于SharePoint 2013推出不久,并非所有的企业都会升级到SharePoint 2013的,毕竟升级不是打打补丁这么简单,更多的企业还是使用Sharepoint 2010版本的,因此本人自行 ...

  7. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  8. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]

    三.使用Azure AD管理用户信息 在上一章我们采用OpenID的方案和Azure AD交互进行身份验证,本章节我们继续了解如何在Azure AD中创建用户,列出用户信息,修改用户信息和删除用户信息 ...

  9. ASP 验证、查询AD域账户信息

    '''函数功能:查询域用户信息 '''参数说明:strAdmin-域管理账户:Password-域帐户密码:Domain-域服务器. ''' ''' 参考资料:http://www.experts-e ...

随机推荐

  1. Nginx限制访问次数和并发数

    Nginx限制访问速率和最大并发连接数模块--limit (防止DDOS攻击) http: ##zone=one或allips 表示设置名为"one"或"allips&q ...

  2. Linux QT 连接 Sqlite数据库

    #include <QApplication> #include <QDebug> #include <QSqlQuery> #include <QSqlDa ...

  3. 第三章 使用Servlet处理HTTP响应

    回顾上一章的知识: Java Servlet是运行在Web服务器或应用服务器上的Java程序 Servlet规范对Servlet功能进行了严格定义 Servlet API与容器进行通讯 Servlet ...

  4. wamp3.1.0 X64下载链接

    Wamp3.1.0 X64下载 链接:https://pan.baidu.com/s/1UUU62whfUtiH2_nGFKdQAg 密码:h92l

  5. POJ 3692 Kindergarten(最大团问题)

    题目链接:http://poj.org/problem?id=3692 Description In a kindergarten, there are a lot of kids. All girl ...

  6. Spring学习之路-从放弃到入门

    AOP:方法拦截器 IOC:类管理容器 主要讲讲这一天看Spring视频学到的东西,以下的叫法全是自创的. 1.类实例管理容器 关于Spring,首先是对类的管理,在常规情况,生成一个类需要调用new ...

  7. Mouse点击之后,复制GridView控件的数据行

    本篇是实现用mouse点击GridView控件任意一行,把所点击的数据复制至另一个GridView控件上. 实现大概思路,把所点击的数据行的记录主键找出来,再去过滤数据源. 点击功能,已经实现,可以参 ...

  8. 为PartialView传递一个参数

    看这篇之前,得先了解这个<在MVC应用程序中动态加载PartialView>http://www.cnblogs.com/insus/p/3547985.html. 因为是从这篇重构而来. ...

  9. jQuery选择器遇上一些特殊字符

    学习jQuery过程中,发现一些特殊字符,如“.”,“#”,"(","]"等.它在选择器应用时,按照普通处理就会出错.解决办法,就是使用转义字符来处理,这有点象 ...

  10. (微信小程序)一 : 初识微信小程序

    首先看过angularjs的同学们在看微信小程序的创始文件应该不算很陌生吧. 需要看的 先是文件目录 看完这个目录..得知 ( 一 )    pages   他存放于多个页面 如 index ,log ...