活动目录在.Net环境下如何用C#操纵?

系统 Windows
在.Net环境下操纵活动目录非常容易,其中提供了很多封装好的类用来操纵活动目录。本文则简要介绍一下如何使用这些类来读取活动目录中的信息。

活动目录在.Net环境下如何用C#操纵?下文就给出了详细的描述。

Windows 2000 Server在Windows NT Server 4.0的基础上,进一步发展了"活动目录(Active Directory)".活动目录是从一个数据存储开始的。它采用了类似Exchange Server的数据存储,称为:Extensible Storage Service (ESS)。其特点是不需要事先定义数据库的参数,可以做到动态地增长,性能非常优良。这个数据存储之上已建立索引的,可以方便快速地搜索和定位。

活动目录的分区是"域(Domain)",一个域可以存储上百万的对象。域之间还有层次关系,可以建立域树和域森林,无限地扩展。

活动目录充分体现了微软产品的"ICE",即集成性(Integration),深入性(Comprehensive),和易用性(Ease of Use)等优点。活动目录是一个完全可扩展,可伸缩的目录服务,既能满足商业ISP的需要,又能满足企业内部网和外联网的需要。

在.Net环境下操纵活动目录非常容易,其中提供了很多封装好的类用来操纵活动目录,这些类都存放在System.DirectoryServicess名称空间里。本文见简要介绍一下如何使用这些类来读取活动目录中的信息。

注:我们假设您已经对活动目录的概念有了基本的了解。

我的网络环境由两个域控制器,和数台win2000工作站组成,安装了活动目录用来保存域里的一切信息,域名是szcs。

下面我们开始建立一个简单的控制台应用程序,来读取活动目录的信息。

***步:建立项目

(这就不多说了)

第二步:添加引用

由于操纵活动目录的类都存放在System.DirectoryServices.dll文件里。所以,我们必须在项目中添加对它的引用。

方法:在菜单中,选择 项目-引用,选择System.DirectoryServices.dll,确定。

第三步:引用名称空间

方法:在程序的开头出添加下面程序

using System.DirectoryServices;

第四步:编写程序

下面是一个范例程序 

  1. namespace ADsample    
  2. {    
  3. ///    
  4. /// Summary description for Class1.    
  5. ///    
  6. class Class1    
  7. {     
  8. static void Main(string[] args)    
  9. {    
  10. //    
  11. // TODO: Add code to start application here    
  12. //     
  13. GetAllOU();     
  14. Console.ReadLine();     
  15. }    
  16. //获取目录中需要的组织单元(OU)   
  17. public static void GetAllOU()   
  18. {   
  19. DirectoryEntry entry = new DirectoryEntry("LDAP://szcs");   
  20. DirectorySearcher mySearcher = new DirectorySearcher(entry);   
  21. mySearcher.Filter = ("(objectClass=organizationalUnit)");   
  22. foreach(SearchResult resEnt in mySearcher.FindAll())   
  23. {   
  24. Console.Write(resEnt.GetDirectoryEntry().Name.ToString());   
  25. Console.WriteLine("\t"resEnt.GetDirectoryEntry().Name.ToString());   
  26. }//end foreach   
  27. }//end GetAllOU   
  28. }//end class   
  29. }//end namespace  

程序注解:

程序开始,实例化了一个DirectoryEntry类,其构造函数的参数是"LDAP://szcs",这里szcs是域名。

然后又实例化了一个DirectorySearcher类,用来查询szcs域中活动目录中的信息,其构造函数的参数是一个DirectoryEntry类的实例对象。

DirectorySearcher类的Filter属性用来设置查询的过滤条件,一般有以下三种:

1. objectClass=organizationalUnit 查询条件是所有的组织单元(OU)

2. objectClass=group 查询条件是所有的组(GROUP)

3. objectClass=user 查询条件是所有的用户(USER)

当然还可以设置其他的过滤条件,而且可以使用逻辑运算符,详情请参加MSDN

DirectorySearcher类的Findall方法用来递归的查找所有符合条件的对象。其返回结果

是一个SearchResult类型的对象,这是一个集合类型。

用Foreach语句访问集合中的所有对象,获得对象的信息。

在.Net环境下用C#操纵活动目录想必通过这篇文章读者也掌握了,希望本文能够对读者有所帮助。

【编辑推荐】

  1. 活动目录用户如何管理?
  2. 活动目录中的对象如何操作?
  3. 活动目录灾难管理员应该如何应对
  4. Windows 2000之活动目录使用技巧
  5. 如何转移活动目录到Windows Server 2008 R2?

 

责任编辑:韩亚珊 来源: 中国IT实验室
相关推荐

2009-08-20 16:07:39

C#和ADO.NET访

2011-06-27 09:42:46

2010-08-30 15:57:25

2011-10-27 08:28:41

活动目录

2010-07-09 09:52:36

C#Linux

2009-08-12 09:41:28

C# Director

2009-11-20 09:10:21

C#开发环境

2009-08-06 18:10:06

C#数据库事务

2011-07-19 09:22:20

活动目录

2009-08-24 15:58:00

Visual C#生成

2009-09-03 16:17:12

C#操纵系统菜单

2009-08-17 15:34:58

C#创建XML

2010-11-25 16:11:00

活动目录Server 2008

2011-04-07 14:07:56

活动目录

2024-09-23 12:10:00

C#MAC代码

2009-09-01 16:29:03

QuickSort C

2011-07-12 16:22:31

活动目录

2009-12-03 10:21:13

linux默认目录命令行

2009-08-25 16:12:46

Visual C#制作

2009-09-11 09:17:00

C# Button
点赞
收藏

51CTO技术栈公众号