【发布时间】:2011-12-22 02:38:28
【问题描述】:
如果我有以下 AD 域路径:
AD 路径:
-
LDAP://AAA.CORP.XX.COM -
LDAP://BBB.CORP.XX.COM -
LDAP://CCC.BBB.CORP.XX.COM -
LDAP://DDD.CORP.XX.COM -
LDAP://EEE.CORP.XX.COM -
LDAP://FFF.CORP.XX.COM
我需要在上述域中搜索用户是否存在于其中一个域中。
我目前的解决方案:
我遍历了上面的所有域,对于每个域,我检查用户是否存在,在上面的一个域中花费了 6-7 秒,其余的不到 1 秒。
提高性能的建议解决方案:
- 尝试在应为
LDAP://CORP.XX.COM的父域中搜索用户,这样将节省搜索次数,而不是每个域的 5 次搜索为 1 次搜索父域 - 尝试使用“全局目录”==>我需要 guid(C# 代码教程)
哪种解决方案更能提高性能问题?
【问题讨论】:
-
你有什么代码..?您的连接 cn= dn= ect... 是什么样的...您是否正在创建 DirectorySearcher 对象...?同样在搜索用户时,您打算搜索/检查什么属性..? SAMAccount...等..
-
DirectoryEntry de = new DirectoryEntry() ; de.Path ="LDAP://AAA.CORP.XX.COM";搜索过滤器格式=(&(objectClass=user)(sAMAccountName={0}))
-
等一下,让我看看我是否可以向您发送一些您将能够遵循的代码 sn-ps 给我 2 分钟确定 public String GetName(string username) 也适用于您..随心所欲地改变你喜欢我
-
感谢 DJ,我通过了您的代码,但它似乎是根据域路径搜索用户。所以我仍然有同样的问题,我将搜索每个域,我的主要问题是我需要点击搜索 1 次而不是 5 次
-
您应该也可以使用现有代码来处理其他事情。您是否尝试过获取任何属性并在 directoryEntry 变量中查看可用的内容.. entry 变量应该产生很多
标签: c# active-directory