credentialprovider

Windows vista为开发者提供了更便利的开发模式,开发自定义的登录凭据(指纹登录、usbkey认证等等)。
Windows vista不再是直接与 winlogon直接交互,而是与winlogon有了一层屏障(会话边界),将所有计算机进程和各个用户的进程进行分隔开来,这大大提高了登录的安全性。此外,对内核的全局命名空间的控制也更加严格,因为默认情况下,由用户应用程序创建的对象已不在内核全局命名控件之内。

最近,应工作需求,实现用usbkey的pin码验证登录,下面是自己查询资料,整理归纳的流程。

  1. winlogon启动logonUI.exe 启动成功
  2. logonUI.exe枚举在[HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\auntication\credential provider下注册的所有凭据提供程序(在此路径下,注册你自定义的凭据)
  3. 枚举完成后,每个提供程序的DLL会被加载
  4. 接收到Provider::CreateInstance调用
  5. 对于混合凭据提供程序,实例化一个CSampleProvider
  6. 用户看到登录界面
  7. CTRL+alt+delete
  8. 每个提供程序收到Provider::setusagescenario CPUS_LOGON通知,这向提供程序表明,用户想进行交互式登录。
  9. 该混合凭据提供程序将尝试从所插入的usbkey中读取凭据
  10. 如果和usbkey交互成功,则实例化 CSampleCredential,并将其与CSampleProvider关联
  11. 调用credential::initialize
  12. 调用provider::advise,advise的目的是为提供程序提供一种机制,将对可见的UI元素(当前还未创建)所做的任何预期的更改通知给logonUI
  13. 初始化之后,无论何时插入usbkey都会增加可用凭据数,而取出则会减小数字
  14. 发生变化,通知logonUI

有用的资料:
CredentialProvider资料
工作笔记,以免遗忘。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值