通过智能卡验证窗口登录
本文关键字:窗口 登录 验证 智能卡 | 更新日期: 2023-09-27 18:34:54
嗨,我需要在我的 WPF 应用程序中验证用户是通过密码还是智能卡登录到他的计算机。这两个登录选项在我的公司客户端中都可用,但我的应用程序只需要在智能卡登录中打开。所有客户端都是Windows 7操作系统。
我看一些网站:http://technet.microsoft.com/en-us/library/ff404285(v=ws.10(.aspxhttp://www.codeproject.com/Articles/240655/Using-a-Smart-Card-Certificate-with-NET-Security-i
我想我需要获取增强型密钥用法 (EKU( 属性字段。如果 EKU 为空 =>则用户是通过密码而不是智能卡登录的。
我只需要这个简单的检查,我不关心在证书 atc 上的创建/验证。
Windows 不会记录用于登录的证书,因此您无法检查 EKU,也不会记录使用的凭据类型,因此没有简单的解决方案。我有几个建议:
选项 1:使用身份验证机制保证在用户使用智能卡登录时向用户的访问令牌添加额外的组成员身份,并将应用设置为需要该组成员身份。这需要一个 Windows Server 2008 R2 功能级别的域。
选项 2:实现凭据管理器并使用 NPLogonNotify 回调检查具有 KerbSmartCardLogon KERB_LOGON_SUBMIT_TYPE KERB_INTERACTIVE_LOGON,然后将其记录在某个位置以供应用检查。