我在 Server1 和 Server2 上的 ASP.NET 4 (4.0.30319) 应用程序池中部署的 webform 的代码中使用以下 C# 代码。
PrincipalContext pc = new PrincipalContext(ContextType.Domain, "testnet.testad.org:636", "dc=testnet,dc=testad,dc=org");
bool validated = pc.ValidateCredentials(username, password, ContextOptions.Negotiate);
Server1 正在运行:windows server 2003 SP2
IIS 6.0
ASP.NET 版本 4.0.30319
根据选项,验证需要 30-60 秒。
(注意:使用常规 ldap 它立即进行身份验证,没有延迟)
服务器 2 正在运行:windows server 2008 SP2
IIS 7.0
ASP.NET 版本 4.0.30319
运行与 Server1 完全相同的代码,Server2 几乎可以立即进行身份验证。
(我还尝试了针对另一台 IIS 7.0 服务器的代码,结果相同)
有没有人遇到过这个问题?
是否有在 IIS 6.0 服务器与 IIS 7.0 服务器上进行身份验证的替代方法?
有什么我需要配置、添加、删除等的吗?
感谢您对此的任何帮助。
..................................................... ..................................................... ………………………………………………………………………………………………………………………………………………
[更新]
我在发出 ldaps 身份验证请求时打开了wireshark。
我创建了一个包含所有超过 636 的请求的文件
。可以在这里查看:Server1 636 traffic
最大的差距出现在:
1949 号在 1.115583 秒 - 06788 号在 14.501754 秒
和
6803 号在 14.64297 秒 - 11742 号在 27.921379 秒
该端口上的所有其他流量都在同一秒内发生。
注意:Server2 上的流量大致相同,但都发生在 2-3 秒之间。
可以看这里:Server2 636 流量
我运行 netstat -ano” 命令并在登录时发现以下 ldaps 连接:
原始本地地址 外部地址状态 PID
TCP 10.1.72.74:1761 10.1.72.54:636 ESTABLISHED 3688
TCP 10.1.72.74:1800 10.1.72.54:636 ESTABLISHED 3688
TCP 10.1.72.74:1825 10.1.72.54:636 ESTABLISHED 3668