`
laintoday
  • 浏览: 65332 次
  • 性别: 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#提供了System.DirectoryServices命名空间,其中的DirectoryEntry和DirectorySearcher类可以用来查询AD中的用户和组信息。通过指定搜索过滤器,我们可以获取特定用户的属性,如用户名、全名,或者找到属于某个组的...

    c#常用基础类

    C#提供了System.DirectoryServices命名空间,其中的DirectoryEntry和DirectorySearcher类可用于查询AD域中的用户和组信息。例如,通过连接到AD服务器,设置搜索过滤器,可以获取特定用户的属性或查找属于某个组的...

    C# 基本类大全

    本文将深入探讨"C#基本类大全"这一主题,涵盖标题和描述中提到的知识点:C#读取AD域、字符串加密以及SqlHelper基类。 首先,让我们了解如何使用C#来读取Active Directory(AD)域中的用户名或组。Active Directory...

    详解C#使用AD(Active Directory)验证内网用户名密码

    3.使用 DirectorySearcher 类:C# 提供了一个名为 DirectorySearcher 的类,用于对 Active Directory 中的对象进行搜索。 四、验证 AD 函数的实现 以下是一个使用 C# 语言对 Active Directory 进行验证的示例代码...

    ldap连接测试工具源代码C#版

    这通常涉及到使用DirectoryEntry和DirectorySearcher类来执行搜索操作。 2. **域结构探索**:该工具可以帮助开发者或管理员查看和理解域的层次结构,包括组织单元(OU)、域控制器、用户组等。这可能涉及到递归遍历...

    .net c#域操作工具类

    本文将详细介绍".net c#域操作工具类"的相关知识点。 首先,了解什么是域。在Windows网络环境中,域是一个由共享相同安全策略、信任关系和身份验证机制的计算机集合构成的逻辑结构。活动目录(Active Directory)是...

    C# 基类 aspx net 常用类

    在C#中,可以使用System.DirectoryServices命名空间的类来与AD进行交互,如DirectoryEntry和DirectorySearcher,实现AD用户的验证、查找和管理。 综上所述,C#基类、ASP.NET常用类和相关技术构成了.NET Web开发的...

    C#读取AD域的组织结构和用户

    C#代码可以通过DirectoryEntry类来代表AD中的任何对象,并通过DirectorySearcher类来查询这些对象。 对于读取AD域的组织结构,我们可以创建一个DirectoryEntry实例,指定AD域的根节点,例如"LDAP://DC=yourdomain,...

    C#基类整理

    在C#中,可以使用System.DirectoryServices命名空间的类来与AD交互,如DirectoryEntry和DirectorySearcher,用于查询AD中的用户、组和其他对象。 3. **Common类库**:在软件开发中,通用类库通常包含可以跨项目复用...

    C#常用的帮助类库.zip

    例如,`DirectoryEntry`类可以连接到AD,`DirectorySearcher`类则用于执行查询,找到特定的用户或组。 3. Common类库:这是提供通用功能的类库,通常包含了一些可以跨项目复用的辅助方法。比如,日期时间处理、字符...

    C#读取AD域里用户名或组

    `DirectorySearcher`类用于执行查询以查找AD对象。 下面是一段基本的代码示例,展示如何使用C#连接到AD域并获取用户或组的信息: ```csharp using System; using System.DirectoryServices; public class ...

    C# 获取域、组信息

    在C#代码中,我们通常会使用DirectoryEntry和DirectorySearcher这两个核心类。 1. **DirectoryEntry**: 这个类代表了AD中的一个对象,如域、用户或组。你可以通过它的Path属性指定对象的位置,例如"LDAP://DC=your...

    c# 获取域 用户 组 信息

    在C#代码中,我们通常会使用`DirectoryEntry`对象来代表AD的对象,如域、用户或组,而`DirectorySearcher`则用于搜索AD中的对象。 要获取域所有信息,首先需要创建一个`DirectoryEntry`实例,指定AD的根目录,例如`...

    C#开发常用基类

    C#通过System.DirectoryServices命名空间的类,如DirectoryEntry和DirectorySearcher,可以方便地查询AD域中的用户和组信息,实现身份验证和授权功能。 3. **Common类库**:这是一个通用术语,通常指包含各种通用...

    C# IIS 设置 C#代码操作IIS之虚拟目录

    其中,`System.DirectoryServices`提供了`DirectoryEntry`和`DirectorySearcher`等类,用于与IIS的 metabase(元数据库)进行交互;`System.DirectoryServices.AccountManagement`则可以帮助处理用户和组的权限设置...

    C#管理window账号

    在IT行业中,C#是一种广泛使用的编程语言,尤其在Windows应用程序开发中占据着核心地位。在本项目中,"C#管理window账号"是针对Windows操作系统中的账户管理功能进行的一次自定义开发,以解决Windows SharePoint ...

    c#对域用户的操作

    - 使用 `System.DirectoryServices` 命名空间,开发者可以访问ADSI(Active Directory Service Interfaces)和DirectoryEntry、DirectorySearcher等类,这些类是与AD交互的基础工具。 8. **LDAP 协议**: - LDAP...

    C#全能速查宝典

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

    C# 、.NET 读取AD域里用户名或组

    本篇文章将详细介绍如何使用C#和.NET框架进行AD域操作,包括读取用户和组信息、创建与删除用户和组,以及移动用户到组等功能。 首先,进行AD域操作前,需要引用System.DirectoryServices命名空间,通过...

Global site tag (gtag.js) - Google Analytics