C#解锁工作站

Bas*_*saa 4 c# windows authentication

对于我想要的usb-smartstick应用程序,我需要能够在C#中解锁一个锁定的工作站.当我插入带有唯一ID的usb时,我想解锁ws.最好的方法是什么?

我的目标是像Rohos Logon Key这样的类似应用程序.

Jus*_*tin 6

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

根据您要定位的Windows版本,有两种不同的方法.

适用于Windows XP及更早版本

为此,您需要编写自己的GINA(Microsoft图形标识和身份验证)替换.仅供参考在.Net中实现这样的dll可能是一个坏主意(参见.NET语言中的GINA替换?).这也是相当高级的东西,引用下面链接的文章之一

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

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

Vista及以后

在Windows Vista及更高版本中,GINA已被Credential Providers取代,因此您需要实现ICredentialProviderCredential接口.虽然这是一个COM接口,但再次以.Net语言实现它将是一个坏主意.

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