validationWindows通过智能卡login

嗨,我需要validation我的WPF应用程序,如果用户通过密码或通过智能卡login到他的电脑。 这两个login选项都可以在我的公司客户端使用,但我的应用程序只需要在智能卡login中打开。 所有的客户端都是Windows 7操作系统。

我看看一些网站: http : //technet.microsoft.com/en-us/library/ff404285( v =ws.10).aspx http://www.codeproject.com/Articles/240655/Using-a-智能卡的证书,与-NET-安全-I

我想我需要获得增强密钥使用(EKU)属性字段。 如果EKU为空=>则用户通过密码锁住而不通过智能卡。

我只需要这个简单的检查,我不关心证书atc的创build/validation。

Windows不会记录用于登录的证书,因此您无法检查EKU,Windows也不会记录使用的凭据类型,因此没有简单的解决方案。 我有一些建议:

选项1:使用身份验证机制保证在用智能卡登录时向用户的访问令牌添加额外的组成员资格,并将您的应用程序设置为需要该组成员身份。 这需要具有Windows server 2008 R2功能级别的域。

选项2: 实现一个凭证管理器,并使用NPLogonNotify回调来检查KERB_INTERACTIVE_LOGON与KERB_LOGON_SUBMIT_TYPE的KerbSmartCardLogon,然后记录在某处为您的应用程序检查。