【问题标题】:ASP.NET ActiveDirectoryMembershipProvider asking for smartcardASP.NET ActiveDirectoryMembershipProvider 请求智能卡
【发布时间】:2016-02-23 14:12:27
【问题描述】:

我正在使用带有 ActiveDiretoryMembershipProvider 和 ASP.NET 登录控制的表单身份验证。使用 IIS Express 进行本地测试时会出现此问题。

当我第一次输入凭据时,不会立即发生重定向,而是会反复弹出一个要求智能卡的窗口。关闭此窗口最终将导致成功登录。

这仅在应用程序启动后我第一次调用 Membership.ValidateUser() 时发生。后续登录不会导致它。

逐步通过ActiveDirectoryMembershipProvider代码显示它在选择或实例化时发生。关闭弹出窗口不会影响身份验证的结果,但应用程序将停止,直到弹出窗口关闭。

我已阅读 ASP.NET 登录控件和 ActiveDirectoryMembershipProvider 代码,但找不到对智能卡的任何引用。

因此我认为这种行为的原因不在代码本身,而是在我第一次尝试连接到 AD 时也触发的另一个事件。

什么可能导致这种行为? (隐藏的 ASP.NET 或 IIS Express 功能?)

我不想使用任何智能卡身份验证。

弹出窗口属于 IIS Express 工作进程。

我能找到的唯一与智能卡相关的配置是“ClientCertificateMappingAuthentication”。但它在 applicationhost.config 中被禁用。

【问题讨论】:

    标签: asp.net iis ldap iis-express smartcard


    【解决方案1】:

    当前的解决方法:

    1. 禁用智能卡服务 (SCardSvr)
    2. 运行 powershell 脚本以关闭所有 iisexpress 弹出窗口
    @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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多