对于我想要的usb-smartstick应用程序,我需要能够在C#中解锁一个锁定的工作站。当我插入带有唯一ID的usb时,我想解锁ws。最好的方法是什么?
我的目标是像Rohos Logon Key这样的类似应用程序。
答案 0 :(得分:6)
据我所知,为了实现这一目标,您需要替换/挂钩处理登录的Windows组件的实现。据我所知,没有其他方法可以实现您的要求 - 在登录之前要求用户输入安全注意序列(SAS)的原因是为了防止恶意软件欺骗登录对话框。如果任何旧程序可以满足您的要求那么这就是恶意软件能够利用的东西。
根据您要定位的Windows版本,有两种不同的方法。
适用于Windows XP及更早版本
为此,您需要编写自己的GINA(Microsoft图形识别和身份验证)替代品。仅在.Net中实施这样的dll可能是一个坏主意(参见A GINA replacement in a .NET language?)。这也是相当高级的东西,引用以下链接文章之一
替换GINA是一种不应该采用的先进技术 轻轻。如果你别无选择,你应该这样做 例如,您正在实现Windows所执行的新登录机制 不支持)。
有关GINA的更多信息,请查看以下链接
Vista及更高版本
在Windows Vista及更高版本GINA has been replaced with Credential Providers上,您需要实现ICredentialProviderCredential interface。虽然这是一个COM接口,但再次以.Net语言实现它将是一个坏主意。
可在以下链接中找到更多详细信息