4

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

我的目标是类似 Rohos Logon Key 之类的应用程序。

4

1 回答 1

6

据我了解,为了实现这一点,您需要替换/挂钩到处理登录的 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 语言实现它是个坏主意。

可以在以下链接中找到更多详细信息

于 2012-09-24T13:42:00.323 回答