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。

活动目录.NET编程Tips相关推荐

  1. 活动目录是做什么用的

    随着windows ad活动目录域在企业中应用的越来越广泛,很多朋友会询问活动目录的作用及功能,活动目录域管理技术的好处,怎样管理域,域管理方案教程等等,诸如此类的问题越来越多.其实,企业实施活动目录 ...

  2. 活动目录(Active Directory)

    Active Directory和活动目录是同义词,已合并. 活动目录 百科名片 活动目录(Active Directory)是面向Windows Standard Server.Windows En ...

  3. 【Windows Server 2019】活动目录 (Active Directory) ——安装Acitve Directory域服务和提升为域控制器

    目录 5. 安装 Active Directory 域服务 实验目的 5.1 配置服务器的IP地址 5.2 安装Active Diretory服务 (1)添加角色和功能 (2)进入[开始之前]界面 ( ...

  4. 活动目录在构建核心过程中的八个关键点(下)

    活动目录是一个面向Windows Server级别的目录服务.在之前的博客文章中介绍了活动目录设计中需要遵循的七个原则,今天在这里讲解有关<活动目录构建核心关键点>. 全文请见专题:htt ...

  5. Backup Exec 2012 备份和还原活动目录(非授权还原)

    延续以上两篇,安装配置完毕后,开始进行备份操作. 环境一如上篇: DC: pdc1.fengdian.info BE2012 Svr: backup.fengdian.info 本例使用BE2012对 ...

  6. 在活动目录中,转移和占用操作主机角色(占用)

    如何占用操作主机 操作主机是ActiveDirectory中的特殊对象,具备操作主机角色的域控制器担任着活动目录核心功能,如果操作主机不可用,整个活动目录都会出现异常,甚至崩溃. 操作主机角色的唯一性 ...

  7. 活动目录(Active Directory)安装

    活动目录与许多协议和服务有着非常紧密的的关系,并涉及整个操作系统的结构和安全,活动目录的安装并非和一般Windows组件那样简单,而必须在安装前完成一系列的规划.设计工作,以保证顺利安装并方便日后的应 ...

  8. 活动目录(Active Directory)域故障解决实例

    A1.客户机无法加入到域? 一.权限问题. 要想把一台计算机加入到域,必须得以这台计算机上的本地管理员(默认为administrator)身份登录,保证对这台计算机有管理控制权限.普通用户登录进来,更 ...

  9. server 2008 中活动目录的迁移

    还记得我们在描述windows server 2008的备份还原中说的在server 2003下的一个缺陷么?如果我们将ntbackup备份的文件转移,很难还原出来,在server 2008中给予了改 ...

最新文章

  1. 从前端角度看网页渲染慢的原理及解决方案
  2. 通用异步 Windows Socket TCP 客户端组件的设计与实现
  3. 对比SQL Server和Oracle的关键参数
  4. python做公司内部系统错误_Python程序可能导致文件系统错误?
  5. Oracle Client安装报错:引用数据不可用于验证此操作系统分发的先决条件
  6. d3.js 制作简单的贪吃蛇
  7. UVA - 10079 Pizza Cutting
  8. 安卓移动办公软件_小企业使用的移动办公软件
  9. Latex编辑线性规划、最优化模型
  10. AndroidStudio选中代码后,光标自动变粗,自动变成ins模式的解决方法
  11. 2019最新《网易云课堂 C++收银系统项目实战教程》 C++开发网吧收银系统(MFC+ADO)
  12. Java实习日记(7)
  13. window下安装ruby与sass(附ruby)
  14. powergui 中“varargout“ 时,未对一个或多个输出参数赋值。
  15. python对seo有什么用_python对seo的帮助 – python对seo的帮助是什么?- 企业服务
  16. 王森:程序设计师真情忏悔录
  17. 从零开始做一款Unity3D游戏<一>——亲自上手使用Unity
  18. uniapp 微信小程序开发 解决旧版本缓存
  19. 小米前端实习电话面试一面
  20. EasyPlayer播放器出错502 Bad Gateway问题分析

热门文章

  1. $.ajax json 在本地正常 上传服务器不正常
  2. laravel使用的模板引擎 blade
  3. FreeSWITCH与PSTN对接
  4. mysql的查询、子查询及连接查询
  5. 用软件lm_sensors监测Linux系统和CPU温度(转)
  6. android UI进阶之布局的优化(二)
  7. python如何移动文件却不覆盖现有文件_解决python不能覆盖文件内容的方法
  8. html表单文本框怎么输出函数值,如何获取用户输入的html文本表单字段传递给javascript函数的值?...
  9. 测试新版FCKeditor编辑器精简版
  10. SanFeng-Clound