`
laintoday
  • 浏览: 64349 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

C# DirectorySearcher类介绍

阅读更多

 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名称空间里。本文见简要介绍一下如何使用这些C# DirectorySearcher类来读取活动目录中的信息。

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

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

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

    第一步:建立项目

    第二步:添加引用
    由于操纵活动目录的类都存放在System.DirectoryServices.dll文件里。所以,我们必须在项目中添加对它的引用。
方法:在菜单中,选择 项目-引用,选择System.DirectoryServices.dll,确定。

    第三步:引用名称空间
    方法:在程序的开头出添加下面程序

  1. using System.DirectoryServices; 

    第四步:编写程序
    下面是一个范例程序

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

    程序注解:
    ◆程序开始,实例化了一个DirectoryEntry类,其构造函数的参数是"LDAP://szcs",这里szcs是域名。
    ◆然后又实例化了一个C# DirectorySearcher类,用来查询szcs域中活动目录中的信息,其构造函数的参数是一个    DirectoryEntry类的实例对象。
    ◆C# DirectorySearcher类的Filter属性用来设置查询的过滤条件,一般有以下三种:
    1. objectClass=organizationalUnit 查询条件是所有的组织单元(OU)
    2. objectClass=group 查询条件是所有的组(GROUP)
    3. objectClass=user 查询条件是所有的用户(USER)

    当然还可以设置其他的过滤条件,而且可以使用逻辑运算符,详情请参加MSDN
    ◆C# DirectorySearcher类的Findall方法用来递归的查找所有符合条件的对象。其返回结果是一个SearchResult类型的对象,这是一个集合类型。
    ◆用Foreach语句访问集合中的所有对象,获得对象的信息。

分享到:
评论

相关推荐

    C#全能速查宝典

    分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...

    C#里边的控件缩写大全

    3 drs DirectorySearcher 4 err ErrorProvider 5 evl EventLog 6 fsw FileSystemWatcher 7 hlp HelpProvider 8 img ImageList 9 msq MessageQueue 10 pfc PerformanceCounter 11 prc Process 12 spt ...

    DirectorySearcher:在目录树中搜索

    在目录树中搜索 独立的 Java 应用程序 java test.search.test.search.Main <线程数> <搜索字符串> <搜索目录> 例如 java test.search.test.search.Main 16 ".IOException" "/usr/local/httpd/logs" ...

    ADModify.NET下载

    AD操作工具,DirectorySearcher的filter写法

    AD编辑工具adsi.rar

    方便的查看DirectorySearcher的filter的写法

    Windows前缀.txt

    3 drs DirectorySearcher 4 err ErrorProvider 5 evl EventLog 6 fsw FileSystemWatcher 7 hlp HelpProvider 8 img ImageList 9 msq MessageQueue 10 pfc PerformanceCounter 11 prc Process 12 spt ...

Global site tag (gtag.js) - Google Analytics