Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 复杂域环境下通过.Net操作Active Directory经验点滴
【标  题】:复杂域环境下通过.Net操作Active Directory经验点滴
【关键字】:.Net,Active,Directory
【来  源】:http://blog.joycode.com/xiaoleih/archive/2004/11/05/38145.aspx

复杂域环境下通过.Net操作Active Directory经验点滴

Your Ad Here

1、操作ACL

操作ACL需要使用ActiveDs这个Com组件。

在上篇文章的回复中Rock提到“很多ActiveDs.dll提供的功能是.net的AD访问组件不提供的”。ACL的操作就是这样。

但是我在操作ACL的时候发现在2003上很正常的程序在2000下不能通过,报出“Security ID Structure is invalid”,中文是“安全 ID 结构无效”。

在KB上找到一篇文章:http://support.microsoft.com/default.aspx?scid=kb;en-us;316329

原来是操作系统在绑定SID的时候有问题。KB中提供了两个解决方法:

A) 人工操作ACL(晕倒,要是人工操作我还写代码干什么,B4)

B) 通过监视网络确认是否连接到的DC无法响应。因为我操作的实际环境是一个很复杂的域环境,这种情况不可避免。

没办法,我只好老老实实地把程序部署到2003的环境下了。

 

2、LDAP

大家都知道,一般我们用DirectoryEntry这个类来操作AD对象。

DirectoryEntry类的构造函数通过指定Path就可以绑定到DC。例如,我们常用的LDAP:LDAP://CN=onecity,OU=corp,DC=fabrikam,DC=com

一般来说,没有什么问题。但是有时候会报错说无法连接到域。

原因和上面所说的情况类似。这里我详细解释一下:

在添加域控制器的时候,DC会把本机所有的有效IP地址都注册到DNS中。在使用nslookup fabrikam.com时,会发现针对这个域(fabrikam.com),有很多对应的IP地址。但是DC服务器可能有多块网卡,有的网卡并没有使用(甚至没有插网线),这个没有使用的网卡会产生168.x.x.x的地址,并且此地址同样会被注册到DNS中。在绑定域控制器时,系统会从域对应的IP中挑选一个去绑定,当然这个无效的地址也会被挑中。

因此,在设定Path时,最好指定DC服务器,例如, LDAP://MYDC01/CN=onecity,OU=corp,DC=fabrikam,DC=com

该方式还有一个好处是在分布式的域环境下(例如,北京/上海/广州),应用程序可以挑选最近的域控制器。

指定DC服务器还需要注意通过尝试多个DC服务器进行容错。例如:如果MYDC01连接失败,自动尝试下一台DC服务器(LDAP://MYDC02/CN=onecity,OU=corp,DC=fabrikam,DC=com)。这个通过程序做到并不困难,就不在这里多说了。

 

在简单的域环境下(1-2台DC)操作AD很简单,但是复杂域环境下会出现很多意想不到的问题,此经验供大家参考。

顾问咨询部招聘开发人员:【上一篇】
.Net中com的版本问题:【下一篇】
【相关文章】
  • .Net 2.0 下Container性能比较: Binary Serialize Dataset vs Custom Classes
  • 使用CVS做.NET项目
  • 使用Subversion做.NET项目
  • AOP在.NET中的现实
  • .NET包含的原则
  • 1月23号上海·美罗大厦·Effective .NET
  • Effective .NET演讲圆满结束,拖着疲惫的身体回到家,非常感谢大家的支持
  • Under The Hood in .NET——使用C++/CLI实现托管版的sizeof (引言)
  • MVP 2005 峰会(VB.Net)
  • 为程序签名能够保护.net程序不受篡改?
  • 【随机文章】
  • Linux Terminal Server Project
  • 阻绝邮件病毒之非典型策略(1)
  • Oracle10g For RHAS3 Install(二)
  • 【分享】11月17日 精品软件下载
  • 可爱小女孩的照片润色攻略(2)
  • SP 短信开发-PROVISION接口实现-正向订购实例代码
  • 如何使用pthread
  • 传奇世界 传世1.70版新师徒体系声望值增加列表
  • Windows 2000 不同的用户不同的桌面环境
  • oracle常用连接 ZT chinaunix
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.