• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
活动目录.NET编程Tips
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
活动目录.NET编程Tips
软件发布 活动目录.NET编程Tips
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 编程技术 | C#教程 | 活动目录.NET编程Tips

活动目录.NET编程Tips

 

添加时间: 2007-7-15 4:04:40  作者: C#教程  阅读次数:67   来源: http://www.d9soft.com

 

 

       
  1. 为什么要有活动目录,什么是活动目录,它有什么用:活动目录主要用在分布式的环境中。在分布式环境中,要求有各种信息可以被各种应用很方便地访问读取。活动目录正式为分布式环境中的信息提供一种访问途径。它提供了一个公共的区域来保存分布式环境中的各种信息,并且对这些信息进行定位。从开发人员角度看活动目录,可以理解活动目录是一种存放了应用程序所需要的特定资源信息的“数据库”。活动目录还对这些资源信息的读取和查询进行了优化。
  2. 容器和非容器:活动目录中的资源信息被组织成一个层次结构。这个层次结构中的每一个实体都被简称为对象。换句话说,活动目录中创建对象时,是把它们创建在一个层次结构中的。该结构由两种类型的对象组成:Container(容器)和非Container(非容器)。容器可容纳非容器或下一级的容器。而非容器则不再包含其他对象,因此也常被成为叶或叶子对象。在安装完活动目录后,操作系统已经默认自动创建了很多的Container,如Users, Builtin等。
  3. ADsPath、DN、RDN:在活动目录中层次结构的路径被称为ADsPath,可用来唯一标志一个对象(另外唯一标志对象的方法是使用GUID)。ADsPath常用的表示为:LDAP://DC=microsoft,DC=com。例如,有域被命名为mydomain.local,则它的ADsPath表示为:LDAP://DC=mydomain,DC=local。其中DC是Domain Component(域组件)的缩写,它只用于表示域的根。DN是Distinguished Name(唯一标识)的缩写,RDN是Relative Distinguished Name(相对唯一标识)的缩写。DN用来在一个完整的目录信息树中唯一表示一个对象的名称,而RDN是指在该对象的父容器中唯一表示它的名称。下面看个示例:在mydomain.local域中用户容器中超级管理员帐号的ADsPath为:LDAP://CN=Administrator,CN=Users,DC=mydomain,DC=local,其DN为(注意没有了LDAP:// 这个前缀):CN=Administrator,CN=Users,DC=mydomain,DC=local,其RDN为(即在Users容器中的名称):CN=Administrator。其中CN是Common Name(公用名称)的缩写。
  4. OU:OU是Organizational Unit(组织单元)的缩写。OU是容器对象,它主要从逻辑的角度来管理和组织活动目录域。例如,当你公司内部打算让销售部经理有权限管理自己整个销售部门资源信息时,一种方法就是为销售部门单独创建一个名为Sales的OU,然后让销售部经理在受限条件下实现其部门资源信息的“自治”。
  5. 更多基础概念,可以参考这里?。
  6. 关于LDAP及其语法,可以参考《理解LDAP》(上,下)。
  7. Naming Context:活动目录被分成许多部分,称之为分区或者Naming Context,简称NC。其中主要有三个部分:Domain NC,Configuration NC,Schema NC。这也就是你打开ADSIEDIT.msc时首先看到的已经加载的三个活动目录分区。Domain NC用于保存用户、组和组织单元的相关信息。Configuration NC用于保存整个域森林中的配置数据信息。而Schema NC负责保存与在活动目录中能够创建的所有的对象和属性集相关的数据。例如,在mydomain.local域中,Domain NC的ADsPath为:LDAP://DC=mydomain,DC=local。Configuration NC的ADsPath为:LDAP://CN=Configuration,DC=mydomain,DC=local。Schema NC的ADsPath为:LDAP://CN=Schema,CN=Configuration,DC=mydomain,DC=local。
  8. AD/ADAM程序访问接口示意图:

  9. System.DirectoryServices:System.DirecotryServices命名空间下有两个主要的类:DirectoryEntry和DirectorySearcher。其中DirectoryEntry类用于表示活动目录中任何一个对象。你可以通过DirectoryEntry对活动目录里的对象进行修改其属性、移动、重命名、列举其内部子对象、创建子对象、删除子对象、获取起父对象等等操作。例如:
    using System.DirectoryServices;

    DirectoryEntry entry = new DirectoryEntry(ADsPath);
    Console.WriteLine(entry.Path);
    Console.WriteLine(entry.Name);
    Console.WriteLine(entry.GUID);
    对于活动目录对象的绑定路径ADsPath,你可以用 LDAP://ServerName/DN 来绑定指定服务器和DN的活动目录对象。另外,DirectoryEntry还可以进一步指定用户名和密码,或者用户名和密码外加安全验证方式进行对象绑定。
  10. DirectoryEntry的属性示意图:


    活动目录对象的属性分为单值属性和多值属性两类。例如上图中,CN就是单值属性,而memberOf则为多值属性。对于多值属性,可以用循环语句for或foreach进行列举。
  11. DirectorySearcher目录查询:DirectorySearcher实例有两个主要方法:FindAll()和FindOne()。FindAll()是获取该对象的所有子对象集合;而FindOne()则获取查询到的第一个子对象。对于DirectorySearcher实例,其也有SearchRoot、SearchScope、Filter三个主要属性。其中,SearchRoot表示在AD层次结构中要开始搜索的节点;SearchScope表示搜索范围;而Filter则表示LDAP查询语句的过滤命令字符串,例如 (&(objectCategory=person)(objectClass=user)) 表示列举所有用户对象中的人员对象。而对于搜索范围SearchScope,则又分为 Base、OneLevel、Subtree三种。其中,Base表示要那个搜索的根节点;OneLevel表示在同一个层次中搜索;Subtree则表示在包括根节点的所有节点的搜索。其示意图如下:

  12. 使用SQLServer查询分析器查询活动目录数据的实现方法:为AD创建一个链接服务器(你可以在企业管理器的具体SQLServer服务器里的“安全性”里看到该项)。在查询分析器中执行下面命令即可:
    sp_addlinkedserver 'ADSI', 'Active Directory Service Interfaces', 'ADSDSOObject', 'adsdatasource'
    现在你就可以在查询分析器中查询AD数据了。例如下面查询语句:
    SELECT * FROM OpenQuery(ADSI, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM ''LDAP://DC=mydomain,DC=local'' where objectClass = ''User''')
  13. ADAM--活动目录应用程序模式:ADAM,全称为Active Directory Application Mode,它是一个可运行在WinXP Professional和Win2k3上的目录服务,可简单的看作是AD的一个简化版本。但是,ADAM和AD是无法比较的,因为它们的侧重点和应用领域是不同的:AD是主要侧重网络基础构造,它是以系统服务运行,并需要配以DNS。而ADAM则主要是为应用程序服务的,它是以用户服务运行,且不需要DNS。同一台计算机上可以运行多个ADAM实例,例如可以为每个应用程序配置一个ADAM实例。你可以在 这里 下载到ADAM。

 

 

 

上下文章:

 

上一篇文章: 在Visual C#中使用XML指南之读取XML 下一篇文章: C#2.0 对AD的简单操作

相关文章:

  • Oracle专家高级编程学习笔记[1]
  • Oracle专家高级编程学习笔记[2]
  • 彻底删除收藏夹里的链接目录
  • Java网络编程之URI、URL研究专题一
  • Java网络编程之URI、URL研究专题八

相关软件:

  • 易语言汉语编程环境 V4.10
  • 超想中文汇编编程学习系统(中英对照版) V3.0
  • VFP完全控制大、中、小型数据库编程接口 V12.0
  • 超想CLOGO汉语编程系统 V1.00
  • 编程代码大全中文 PDF电子书
  • 产品目录(Catalog)制作大师 V2008

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • ADO.NET的开发场景及传统ADO的处理
  • 利用Visual C#实现Window管道技术
  • C#取得汉字的拼音的首字母
  • 使用C#编写DES加密程序的framework
  • Visual C#编写3D游戏框架示例
  • 用C#和本地Windows API操纵系统菜...
  • 在C#程序设计中使用Win32类库
  • Visual C#中调用Windows服务初探
  • 如何在C#的WinForm中制作饼状图和...
  • C#中实现DataGrid双向排序

C#教程阅读排行

  • 如何在C#的WinForm中制作饼状图和...
  • 浅析C#中图形编程
  • 用C#和本地Windows API操纵系统菜...
  • 彻底剖析C# 2.0泛型类的创建和使用
  • Visual C#编写3D游戏框架示例
  • 使用C#编写DES加密程序的framework
  • Visual C# 2005实现控件中捕获按键
  • Visual C#中调用Windows服务初探
  • C#如何在Form中嵌入并且操作Excel...
  • C#中利用mediaplayer打造mp3播放器

编程技术阅读总排行

  • VB入门教程之一
  • 第二章 PowerBuilder 入门之创建新...
  • Java连接数据库实例
  • 第一章 什么是PowerBuilder
  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有