惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - 海盗

How to point your package manager to US server How to install Java in Ubuntu [Linux]Variable and Parameters in Bash - 海盗 HOWTO: Install chinese input One series article of Linux file system Reading notes of &lt;&gt; -- I <> - 海盗 - 博客园 Got two days' break New keyboard - 海盗 - 博客园 Some questions before learning ASP.net MVC framework Back again! JavaScript MD5 Encryption - 海盗 AJAX中的Back Button/Bookmarking问题和Nikhil Kothari的Atlas解决方案 My 50 favorite design resources IE ToolBar 关于C#中字段的初始化 关于namespace - 海盗 - 博客园 好久没来了! C#播放音乐
复杂域环境下通过.Net操作Active Directory经验点滴
海盗 · 2006-07-02 · via 博客园 - 海盗

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很简单,但是复杂域环境下会出现很多意想不到的问题,此经验供大家参考。

posted on 2006-07-02 10:29  海盗  阅读(447)  评论()    收藏  举报