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,确定。
第三步:引用名称空间
方法:在程序的开头出添加下面程序
- using System.DirectoryServices;
第四步:编写程序
下面是一个范例程序
- namespace ADsample{
- ///
- /// Summary description for Class1.
- ///
- class Class1{
- static void Main(string[] args){
- //
- // TODO: Add code to start application here
- GetAllOU();
- Console.ReadLine();
- }
- //获取目录中需要的组织单元(OU)
- public static void GetAllOU(){
- DirectoryEntry entry = new DirectoryEntry("LDAP://szcs");
- DirectorySearcher mySearcher = new DirectorySearcher(entry);
-
mySearcher.Filter = ("(objectClass=organizationalUnit)");
- foreach(SearchResult resEnt in mySearcher.FindAll()){
- Console.Write(resEnt.GetDirectoryEntry().Name.ToString());
- Console.WriteLine("\t"resEnt.GetDirectoryEntry().Name.ToString());
- }//end foreach
- }//end GetAllOU
- }//end class
- }//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#提供了System.DirectoryServices命名空间,其中的DirectoryEntry和DirectorySearcher类可以用来查询AD中的用户和组信息。通过指定搜索过滤器,我们可以获取特定用户的属性,如用户名、全名,或者找到属于某个组的...
C#提供了System.DirectoryServices命名空间,其中的DirectoryEntry和DirectorySearcher类可用于查询AD域中的用户和组信息。例如,通过连接到AD服务器,设置搜索过滤器,可以获取特定用户的属性或查找属于某个组的...
本文将深入探讨"C#基本类大全"这一主题,涵盖标题和描述中提到的知识点:C#读取AD域、字符串加密以及SqlHelper基类。 首先,让我们了解如何使用C#来读取Active Directory(AD)域中的用户名或组。Active Directory...
3.使用 DirectorySearcher 类:C# 提供了一个名为 DirectorySearcher 的类,用于对 Active Directory 中的对象进行搜索。 四、验证 AD 函数的实现 以下是一个使用 C# 语言对 Active Directory 进行验证的示例代码...
这通常涉及到使用DirectoryEntry和DirectorySearcher类来执行搜索操作。 2. **域结构探索**:该工具可以帮助开发者或管理员查看和理解域的层次结构,包括组织单元(OU)、域控制器、用户组等。这可能涉及到递归遍历...
本文将详细介绍".net c#域操作工具类"的相关知识点。 首先,了解什么是域。在Windows网络环境中,域是一个由共享相同安全策略、信任关系和身份验证机制的计算机集合构成的逻辑结构。活动目录(Active Directory)是...
在C#中,可以使用System.DirectoryServices命名空间的类来与AD进行交互,如DirectoryEntry和DirectorySearcher,实现AD用户的验证、查找和管理。 综上所述,C#基类、ASP.NET常用类和相关技术构成了.NET Web开发的...
C#代码可以通过DirectoryEntry类来代表AD中的任何对象,并通过DirectorySearcher类来查询这些对象。 对于读取AD域的组织结构,我们可以创建一个DirectoryEntry实例,指定AD域的根节点,例如"LDAP://DC=yourdomain,...
在C#中,可以使用System.DirectoryServices命名空间的类来与AD交互,如DirectoryEntry和DirectorySearcher,用于查询AD中的用户、组和其他对象。 3. **Common类库**:在软件开发中,通用类库通常包含可以跨项目复用...
例如,`DirectoryEntry`类可以连接到AD,`DirectorySearcher`类则用于执行查询,找到特定的用户或组。 3. Common类库:这是提供通用功能的类库,通常包含了一些可以跨项目复用的辅助方法。比如,日期时间处理、字符...
`DirectorySearcher`类用于执行查询以查找AD对象。 下面是一段基本的代码示例,展示如何使用C#连接到AD域并获取用户或组的信息: ```csharp using System; using System.DirectoryServices; public class ...
在C#代码中,我们通常会使用DirectoryEntry和DirectorySearcher这两个核心类。 1. **DirectoryEntry**: 这个类代表了AD中的一个对象,如域、用户或组。你可以通过它的Path属性指定对象的位置,例如"LDAP://DC=your...
在C#代码中,我们通常会使用`DirectoryEntry`对象来代表AD的对象,如域、用户或组,而`DirectorySearcher`则用于搜索AD中的对象。 要获取域所有信息,首先需要创建一个`DirectoryEntry`实例,指定AD的根目录,例如`...
C#通过System.DirectoryServices命名空间的类,如DirectoryEntry和DirectorySearcher,可以方便地查询AD域中的用户和组信息,实现身份验证和授权功能。 3. **Common类库**:这是一个通用术语,通常指包含各种通用...
其中,`System.DirectoryServices`提供了`DirectoryEntry`和`DirectorySearcher`等类,用于与IIS的 metabase(元数据库)进行交互;`System.DirectoryServices.AccountManagement`则可以帮助处理用户和组的权限设置...
在IT行业中,C#是一种广泛使用的编程语言,尤其在Windows应用程序开发中占据着核心地位。在本项目中,"C#管理window账号"是针对Windows操作系统中的账户管理功能进行的一次自定义开发,以解决Windows SharePoint ...
- 使用 `System.DirectoryServices` 命名空间,开发者可以访问ADSI(Active Directory Service Interfaces)和DirectoryEntry、DirectorySearcher等类,这些类是与AD交互的基础工具。 8. **LDAP 协议**: - LDAP...
分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...
本篇文章将详细介绍如何使用C#和.NET框架进行AD域操作,包括读取用户和组信息、创建与删除用户和组,以及移动用户到组等功能。 首先,进行AD域操作前,需要引用System.DirectoryServices命名空间,通过...