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