编程语言
首页 > 编程语言> > c#-安全LDAP身份验证问题

c#-安全LDAP身份验证问题

作者:互联网

我在Server1和Server2上的ASP.NET 4(4.0.30319)应用程序池中部署的Web表单的背后代码中使用以下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秒

No.6803(14.64297秒)-No.11742(27.921379秒)

该端口上的所有其他流量都在同一秒内发生.

注意:Server2上的通信量大致相同,但都在2-3秒之间发生.
可以在这里查看:Server2 636 traffic

我运行netstat -ano”命令并在登录时发现了ldap的以下连接:

原始本地地址外部地址状态PID
  TCP 10.1.72.74:1761 10.1.72.54:636建立3688
  TCP 10.1.72.74:1800 10.1.72.54:636建立3688
  TCP 10.1.72.74:1825 10.1.72.54:636建立3688

解决方法:

看看我在ServerFault的答案…

该服务可能无法访问:

C:\Documents and Settings\All Users\Application
Data\Microsoft\Crypto\RSA\MachineKeys

您的提及:

Date: 3/25/2013 Time: 10:11:06 AM Source: Schannel “A fatal error
occurred when attempting to access the SSL client credential private
key.

使它有可能.

标签:ldap,authentication,iis-7,iis-6,c
来源: https://codeday.me/bug/20191031/1973076.html