在一个应用程序中,我们最近将登录名从 sAMAccountname 更改为 UserPrincipaleName。(原因:20 个字符的限制)
一切正常,但连接到 AD/ldap 时速度很慢。但是如果我使用 DirectoryEntry 路径中的 ip 地址,它的连接速度非常快。
请看一下这个代码示例。我确实以不同的顺序测试了代码块,以排除缓存。但结果保持不变。对于故障转移和负载平衡,我想使用域名而不是 IP 地址。
有人知道是什么导致了我面临的延误吗?
//login with sAMAccountname + FQDN => 1 second
DirectoryEntry d1 = new DirectoryEntry("LDAP://abc.local/CN=AdminF,OU=Users,DC=abc,DC=local", "admin.123f", "password");
Console.WriteLine("d1 {0} {1}", d1.Properties["DisplayName"][0], DateTime.Now - sttime);
sttime= DateTime.Now;
//login with userPrincipaleName + ip address => 1 second
DirectoryEntry d2 = new DirectoryEntry("LDAP://10.xx.xx.1/CN=AdminF,OU=Users,DC=abc,DC=local", "admin.f@abc.local", "password");
Console.WriteLine("d2 {0} {1}", d2.Properties["DisplayName"][0], DateTime.Now - sttime);
sttime= DateTime.Now;
//login with userPricipaleName + FQDN //=> 30-63 seconds!!!!
DirectoryEntry d3 = new DirectoryEntry("LDAP://abc.local/CN=AdminF,OU=Users,DC=abc,DC=local", "admin.f@abc.local", "password");
Console.WriteLine("d3 {0} {1}", d3.Properties["DisplayName"][0], DateTime.Now - sttime);
// user admin.f@abc.local is the same user as admin.123f.