我正在使用ActiveDiretoryMembershipProvider和ASP.NET Login-Control进行表单身份验证。使用IIS Express在本地进行测试时会出现此问题。
当我第一次输入凭证时,没有立即重定向,而是反复弹出一个要求智能卡的窗口。关闭此窗口最终将导致成功登录。
仅在应用程序启动后第一次调用Membership.ValidateUser()时才会发生这种情况。后续登录不会导致它。
单步执行ActiveDirectoryMembershipProvider代码表明,在选择或实例化MembershipProvider时会发生这种情况。解除弹出窗口不会影响身份验证的结果,但应用程序将暂停,直到弹出窗口关闭。
我已阅读过ASP.NET登录控件和ActiveDirectoryMembershipProvider代码,但未找到任何智能卡参考。
因此我认为这种行为的原因不在于代码本身,而是在我第一次尝试连接到AD时也会触发的另一个事件。
什么可能导致这种行为? (隐藏的ASP.NET或IIS Express功能?)
我不想使用任何智能卡身份验证。
弹出窗口属于IIS Express工作进程。
我能找到的唯一与智能卡相关的配置是“ClientCertificateMappingAuthentication”。但它在applicationhost.config中被禁用。
答案 0 :(得分:0)
目前的解决方法:
@ECHO OFF
echo This script kills all iisexpress popups, and can be placed in your autostart directory
powershell.exe -NoProfile -ExecutionPolicy Bypass -windowstyle hidden -command "while($true) { if(get-process iisexpress) { for (1..20) { (get-process iisexpress).closemainwindow(); Start-Sleep -m 200; } }; Start-Sleep -s 5; }; PAUSE"
echo Done
PAUSE