C#解锁工作站

对于我想要的usb-smartstick应用程序,我需要能够在C#中解锁locking的工作站。 当我插入一个唯一的ID我的USB,我想解锁的WS。 什么是最好的方法来做到这一点?

我正在瞄准类似Rohoslogin密钥的应用程序。

Solutions Collecting From Web of "C#解锁工作站"

据我所知,为了实现这一点,你需要替换/挂钩到处理登录的Windows组件的实现。 据我所知,没有别的方法可以实现你所要求的 – 在登录之前用户需要输入安全注意序列(SAS)的原因是防止恶意软件欺骗登录对话框。 如果任何旧的程序可以做你所要求的,那么这是恶意软件可以利用的东西。

有两种不同的方法,这取决于您所定位的Windows版本。

对于Windows XP和更早版本

为了做到这一点,你需要编写自己的GINA(微软图形标识和认证)替代品。 在.Net中实现这样的dll可能是一个坏主意(请参阅.NET语言中的GINA替换 )。 这也是相当先进的东西,引用下面的链接文章之一

取代GINA是一项不应掉以轻心的先进技术。 如果没有其他选择,则只能执行此操作(例如,如果您正在实现Windows不支持的新登录机制)。

有关GINA的更多信息,请查看以下链接

  • 以编程方式解锁Windows工作站
  • 定制GINA,第1部分
  • 定制GINA,第2部分
  • 锁定Windows桌面
  • Aucun (替代GINA项目)
  • Microsoft图形标识和身份验证(GINA)(MSDN)
  • 取代微软图形标识和认证动态链接库的要点

Vista和更高版本

在Windows Vista和更高版本中, GINA已经被凭证提供者取代 ,所以您需要实现ICredentialProviderCredential接口 。 虽然这是一个COM接口,但是再次用.Net语言来实现它将是一个坏主意。

更多细节可以在下面的链接中找到

  • Winlogon和凭证提供程序
  • 使用Windows Vista的凭据提供程序创建自定义登录体验
  • 如何在Windows Vista中创建自定义登录UI
  • 使用C#和YubiKey添加winlogon登录方法
  • 凭据提供者样本