使用全局编录连接到AD时的性能问题

时间:2012-04-13 17:42:12

标签: c# active-directory ldap

我遇到了使用域目录方法连接到活动目录的性能问题,然后一位朋友建议我使用全局编录方法,但我遇到了更高的性能问题我做了概念验证然后使用

示例1 :使用域名目录

DirectoryEntry de = new DirectoryEntry();

de.Path = "LDAP://DomainName.CORP.COM";
de.Password = "UserPassword";
de.Username = "UserName";

DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;

deSearch.ClientTimeout = new TimeSpan(0, 0, 60);

deSearch.SearchScope = SearchScope.Subtree;
string format = "(&(objectClass=user)(sAMAccountName="+InputUserName+"))";
deSearch.Filter = string.Format(format, UserName);

花了大约1秒

示例2 :使用带有不安全端口的全局编录(3268):

de.Path = "GC://CORP.COM:3268";

耗时6秒

示例3 :使用带有安全端口的全局编录(3269):

de.Path = "GC://CORP.COM:3269";

花了38秒

您是否可以帮助我如何使用安全的全局编目方法解决性能问题,因为您需要花费很长时间?

顺便提一下,我在下面的文章中找到了:http://support.microsoft.com/kb/951581我们可以解决性能问题,通过解决方法来禁用分页查询,但我不知道我是如何实现的呢?

您的反馈意见将受到高度赞赏

2 个答案:

答案 0 :(得分:0)

SSL问题可能与检查证书撤销或该行的某些内容有关。

您的DC运行的是什么版本的Windows?

答案 1 :(得分:0)

很难说出你的最终目标是什么,但是根据你的代码判断,看起来你只是试图授权用户,然后也可以检索他们的属性?

如果是这种情况,您实际上不必使用全局编目语法。我建议使用标准的域目录语法和较低级别的System.DirectoryServices库。

在连接\授权\搜索基于SSL的Active Directory时,我花费了几周时间来解决一个非常类似的性能问题,您可以在此处找到该票证:

Set callback for System.DirectoryServices.DirectoryEntry to handle self-signed SSL certificate?

希望这会让你朝着正确的方向前进。