第一部分 概述 1
第1章 活动目录库套书的使用 1
1.1 活动目录库套书的组成 1
1.2 活动目录库套书的编写思想 2
第2章 本书的内容 3
第3章 微软参考资源的使用 6
3.1 微软开发者网络 6
3.1.1 MSDN和MSDN在线的比较 7
3.1.2 订阅MSDN 8
3.1.3 MSDN的使用 10
3.1.4 使用MSDN在线 14
3.2 Windows程序设计系列参考 22
第4章 查找开发者所需的资源 23
4.1 开发者支持 23
4.2 在线资源 25
4.3 关于学习的产品 25
4.5 其他资源 27
4.4 会议 27
第5章 活动目录的基础知识 28
5.1 活动目录基础 29
5.1.1 什么是目录服务 29
5.1.2 为什么需要目录服务 29
5.2.4 容器和树叶 30
5.2.3 对象 30
5.2.2 名字空间 30
5.2.1 作用域 30
5.2 活动目录的核心概念 30
5.1.3 什么是活动目录 30
5.2.5 对象名和标识 31
5.2.6 命名环境和分区 31
5.2.7 域 32
5.2.8 域树 32
5.2.9 域森林 33
5.2.10 活动目录服务器和动态DNS 33
5.3.2 数据模型 34
5.3.1 目录系统代理 34
5.3.3 架构 34
5.3 活动目录体系结构 34
5.2.11 站点 34
5.3.4 系统管理模型 35
5.3.5 全局目录 35
5.3.6 活动目录的安全性 35
第二部分 指南、示例和编程参考 37
第6章 活动目录的搜索 37
6.1 确定所要搜索的对象 37
6.2.1 搜索域中的对象 50
6.2 在何处搜索某个对象 50
6.2.2 搜索架构 51
6.2.3 搜索配置容器 51
6.2.4 搜索全局目录对象 51
6.3 选择数据访问技术 52
6.4 创建一个查询过滤器 53
6.4.1 通过类查找对象 53
6.4.2 通过名字查找对象 54
6.4.3 查找属性列表 54
6.4.4 检查查询过滤器语法 55
6.4.5 设置关系比较表达式的值 56
6.5 列出所要检索的每个对象的属性 63
6.6 绑定一个搜索起始点 64
6.7 设置其他的搜索选项 65
6.7.1 搜索作用域 65
6.7.2 同步与异步的比较 65
6.7.3 分页 66
6.7.4 结果缓存 66
6.7.5 对搜索结果进行排序 67
6.7.6 推荐搜索 67
6.7.8 服务器时间限制 68
6.7.7 大小限制 68
6.7.9 客户超时 69
6.7.10 仅返回属性名 69
6.7.11 检查搜索选项 74
6.8 查询的安全效果 75
6.9 处理查询结果 76
6.10 创建有效的查询 76
6.11 推荐 77
6.11.1 关于绑定分区容器的示例程序代码 78
6.11.3 创建外部推荐 90
6.11.2 推荐是何时产生的 90
第7章 绑定操作 95
7.1 无服务器的绑定和RootDSE 96
7.2 绑定全局目录 100
7.3 使用objectGUID来绑定一个对象 102
7.4 使用WKGUID来绑定一个公认的对象 106
7.5 使用otherWellKnownObjects属性进行安全重命名绑定 110
7.6 认证 121
7.6.1 GetObject和ADsGetObject 121
7.6.2 ADsOpenObject和ADsOpenDSObject::OpenDSObject 122
7.7 用于成批写/修改操作的快速绑定选项 124
7.8 绑定一个对象的父容器 125
7.9 绑定子对象 126
7.10 选择一个接口 127
第8章 活动目录对象属性的读写操作 129
8.1 属性缓存 129
8.2 获取属性 130
8.2.1 Get方法 130
8.2.2 GetEx方法 131
8.2.3 GetInfo方法 132
8.2.4 使用GetInfoEx进行优化 133
8.2.5 使用IDirectoryObject接口来获取属性 133
8.3 设置属性 135
8.3.1 Put方法 135
8.3.2 PutEx方法 136
8.3.3 SetInfo方法 137
8.4 遍历属性 137
9.1.1 控制对象及其属性的访问 139
9.1 活动目录的访问控制是怎样工作的 139
第9章 控制活动目录对象的访问 139
9.1.2 活动目录对象的访问权限 140
9.1.3 安全环境和活动目录 140
9.2 安全性是如何影响对活动目录的操作的 141
9.2.1 访问控制和读操作 141
9.2.2 访问控制和写操作 141
9.2.3 访问控制和对象创建 142
9.2.4 访问控制和对象删除 142
9.3 用于安全描述符的API函数 142
9.3.1 使用IADs来获取安全描述符 143
9.3.2 使用IDirectoryObject来获取安全描述符 144
9.3.3 安全描述符组件 145
9.3.4 检索对象的DACL 146
9.3.5 检索对象的SACL 146
9.3.6 读取对象的安全描述符 147
9.4 设置对象的访问权限 156
9.4.1 设置目录对象ACE的示例程序代码 158
9.4.2 设置整个对象的访问权限 166
9.4.3 设置某个属性的访问许可 167
9.4.4 设置组属性的访问许可 168
9.4.5 设置子对象的操作许可 170
9.5 如何设置新目录对象的安全描述符 171
9.6 创建安全描述符 172
9.7 管理的继承和委托 173
9.7.1 访问控制的继承 174
9.7.2 设置特定类型对象的访问权限 175
9.7.3 设置某种特定类型对象的特定属性的访问权限 177
9.7.4 保护对象不受继承的权限的影响 177
9.8 缺省的安全描述符 180
9.8.1 读取对象类defaultSecurityDescriptor属性 181
9.8.2 修改对象类defaultSecurityDescriptor属性 190
9.9 扩展访问权限 195
9.9.1 创建扩展权限 196
9.9.2 在对象的ACL中设置扩展权限ACE 201
9.9.3 在对象的ACL中检查扩展权限 205
9.9.4 读取对象ACL中的扩展权限集 210
10.1 关于活动目录用户接口 216
第10章 扩展活动目录对象的用户接口 216
10.1.1 显示标识符 217
10.1.2 DisplaySpecifiers容器 218
10.2 用于显示标识符的属性页 220
10.2.1 属性页COM对象的实现 221
10.2.2 在显示标识符中注册属性页COM对象 227
10.3 环境菜单所用的显示标识符 234
10.3.1 环境菜单COM对象的实现 235
10.3.2 在显示标识符中注册环境菜单COM对象 245
10.3.3 注册用于启动应用程序的环境菜单项 246
10.4 类和属性的显示名称 249
10.5 把容器作为叶子节点来查看 250
10.6 对象创建向导 251
10.7 使用MSI和Windows 2000应用程序来分布UI接口 254
10.8 使用标准对话框来处理活动目录对象 254
10.8.1 目录对象检取器 254
10.8.2 域浏览器 257
10.8.3 容器浏览器 258
10.9 应用程序怎样使用显示标识符 260
10.10 新对象类的用户接口扩展 261
10.11 使用MMC管理插件扩展活动目录管理插件 262
10.11.1 环境菜单扩充教程 262
10.11.2 注册活动目录管理器节点类型 264
10.11.3 MMC节点类型 272
第11章 对象检取对话框 274
11.1 关于对象检取对话框 274
11.2 使用对象检取对话框 275
11.2.1 显示对象检取对话框 275
11.2.2 初始化对象检取对话框 277
11.2.3 对象选择处理 278
第12章 复制和数据完整性 280
12.1 活动目录复制模型 280
12.1.1 什么是活动目录的复制模型 280
12.1.2 为什么活动目录使用这个复制模型 280
12.1.3 活动目录复制程序员模型 281
12.2 活动目录的复制行为 281
12.3 检测和避免复制延迟 283
12.3.4 有效日期和时间 284
12.3.3 带外通知 284
12.3.2 暂时本地性 284
12.3.1 你知道什么,在何时知道它 284
12.3.5 校验和与对象计数 285
12.3.6 一致性GUID 285
12.3.7 版本和退回策略 286
第13章 管理用户 287
13.1 活动目录中的用户 287
13.2 安全负责人 288
13.3 什么是用户 288
13.4.2 用户对象属性 289
13.4 读取用户对象 289
13.4.1 绑定用户对象 289
13.4.3 读取对象的属性 296
13.4.4 设置用户对象的属性 324
13.5 创建用户 324
13.6 删除用户 329
13.7 遍历用户 331
13.8 用户的查询 332
13.9 用户的移动 337
13.10.1 在成员服务器和Windows 2000专业版中遍历用户 338
13.10 在成员服务器和Windows 2000专业版中管理用户 338
13.10.2 在成员服务器和Windows 2000专业版中创建用户 343
13.10.3 在成员服务器和Windows 2000专业版中删除用户 345
13.11 countryCode的值 346
第14章 组的管理 353
14.1 活动目录中的组 353
14.1.1 组的类型 354
14.1.2 如何在访问控制时使用安全组 355
14.1.3 在何处创建组 355
14.1.5 组作用域和全局目录 356
14.1.4 组的作用域 356
14.1.6 使用什么类型的组 357
14.2 组对象 358
14.3 域混合模式和本地模式组 359
14.4 在域中创建组 362
14.5 在一个域的组中添加成员 370
14.6 在域中删除组成员 372
14.7.3 公共错误 373
14.7.2 混合模式中的嵌套 373
14.7.1 本地模式中的嵌套 373
14.7 将组嵌套在另外一个组中 373
14.8 确定组中用户和组的成员隶属关系 374
14.9 组的遍历 381
14.9.1 遍历域中所有的组 381
14.9.2 在域中通过作用域或类型进行组的遍历 382
14.9.3 遍历组中所有的成员 389
14.9.4 遍历包含许多对象的组 392
14.10 在域中检索组 401
14.11 改变组的作用域和类型 411
14.12 组的删除 412
14.13 组的移动 415
14.14 获得域账号形式的组名 417
14.15 在成员服务器和Windows 2000专业版中的组 419
14.15.1 在成员服务器和Windows 2000专业版中遍历组 420
14.15.2 在成员服务器和Windows 2000专业版中创建计算机本地组 425
14.15.3 在成员服务器和Windows 2000专业版中删除组 431
14.15.4 在成员服务器和Windows 2000专业版中添加域组到计算机本地组 435
14.16 应用程序和服务开发者对组所必须掌握的知识 439
15.1 活动目录跟踪改变技术综述 440
第15章 跟踪改变 440
15.2 活动目录的改变通知 442
15.3 使用DirSync控制查询改变 449
15.4 使用USNChanged查询改变 460
15.5 检索已删除的对象 475
第16章 发布服务 476
16.1 关于发布服务 476
16.1.1 发布服务的安全问题 477
16.2 采用服务连接点发布服务 478
16.1.2 连接点 478
16.2.1 在何处创建服务连接点 479
16.2.2 用于复制服务、基于主机服务和数据库服务的服务连接点 482
16.2.3 服务连接点属性 483
16.2.4 创建和维护服务连接点 484
16.2.5 客户如何查找和使用服务访问点 492
16.3 使用RPC名字服务发布服务 497
16.3.1 发布RPC服务的示例程序代码 497
16.3.2 RPC客户定位服务器的示例程序代码 499
16.4.1 安装RnR服务类的示例程序代码 500
16.4 使用Windows Socket注册和归结来发布服务 500
16.4.2 使用RnR发布来实现Winsock服务的示例程序代码 502
16.4.3 发布RnR连接点示例程序代码 506
16.4.4 删除RnR连接点示例程序代码 507
16.4.5 Winsock客户使用RnR查询定位服务的示例程序代码 508
16.5 发布COM+服务 512
第17章 账号登录服务 513
17.1 关于服务登录账号 513
17.2.2 域用户账号 514
17.2 选择服务登录账号的规则 514
17.2.1 本地用户账号 514
17.2.3 LocalSystem账号 515
17.3 设置服务的用户账号 516
17.4 在主机上安装一个服务 516
17.4.1 允许在主机上授权服务的登录权限 519
17.4.2 检测调用进程是否运行在域控制器上 519
17.5 赋予服务登录账号的访问权限 520
17.6 登录账号的维护任务 525
17.6.1 修改服务的用户账号密码 525
17.6.2 遍历所有服务副本 527
17.7 转换域账号名格式 531
第18章 使用Kerberos进行相互认证 532
18.1 关于使用Kerberos进行相互认证 532
18.1.1 安全提供商 533
18.1.2 完整性和私有性 533
18.1.3 使用Kerberos进行相互认证的局限性 534
18.2 服务主用名称 534
18.2.1 唯一SPN的名字格式 534
18.2.3 如何注册服务SPN 536
18.2.2 如何构造服务SPN 536
18.2.4 客户如何构造服务SPN 537
18.3 使用SCP Windows Socket服务的相互认证 537
18.3.1 客户如何认证基于SCP的Windows Socket服务 538
18.3.2 为基于SCP的Windows Socket服务构造和注册SPN 543
18.3.3 Windows Socket服务如何对客户进行认证 547
18.4 RPC应用程序中的相互认证 551
18.4.1 客户如何认证RpcNs服务 552
18.4.2 构造RpcNs服务的SPN 555
18.4.3 RpcNs服务如何认证一个调用者 556
18.5 在Windows Socket应用程序中的相互认证 558
第19章 活动目录的备份和恢复 560
19.1 活动目录服务的备份考虑 560
19.2 活动目录的备份 561
19.3 活动目录的恢复 561
第三部分 附录 563
附录A 术语表 563
附录B 索引 573