我遇到了使用域目录方法连接到活动目录的性能问题,然后一位朋友建议我使用全局编录方法,但我遇到了更高的性能问题我做了概念验证然后使用
示例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我们可以解决性能问题,通过解决方法来禁用分页查询,但我不知道我是如何实现的呢?
您的反馈意见将受到高度赞赏
答案 0 :(得分:0)
SSL问题可能与检查证书撤销或该行的某些内容有关。
您的DC运行的是什么版本的Windows?
答案 1 :(得分:0)
很难说出你的最终目标是什么,但是根据你的代码判断,看起来你只是试图授权用户,然后也可以检索他们的属性?
如果是这种情况,您实际上不必使用全局编目语法。我建议使用标准的域目录语法和较低级别的System.DirectoryServices库。
在连接\授权\搜索基于SSL的Active Directory时,我花费了几周时间来解决一个非常类似的性能问题,您可以在此处找到该票证:
Set callback for System.DirectoryServices.DirectoryEntry to handle self-signed SSL certificate?
希望这会让你朝着正确的方向前进。