C# 解锁工作站

4

我想开发一个USB智能U盘应用程序,需要在C#中解锁锁定的工作站。当我插入带有唯一ID的USB时,想要解锁工作站。最好的方法是什么?

我的目标是制作一个类似于Rohos Logon Key的应用程序。


这是不可能的。从一个被锁定的工作站启动登录序列的唯一方法,需要像那个 USB 密钥这样的身份验证提供者使用 SAS(安全认证序列)。Ctrl + Alt + Del。三根属于人类的手指。 - Hans Passant
1个回答

6
据我了解,为了实现这一点,您需要替换/钩入处理登录的Windows组件的实现。据我所知,没有其他方法可以实现您所要求的内容 - 用户在登录之前需要输入安全注意序列(SAS)的原因是防止恶意软件伪造登录对话框。如果任何旧程序都可以做到您所要求的内容,那么恶意软件将能够利用此功能。
根据您的目标Windows版本,有两种不同的方法可以实现此操作。
对于Windows XP及更早版本
为了实现此操作,您需要编写自己的GINA(Microsoft图形识别和身份验证)替代品。FYI在.Net中实现这样的dll可能是一个坏主意(请参见A GINA replacement in a .NET language?)。此外,这是相当高级的东西,引用下面链接的文章之一:
替换GINA是一项高级技术,不应轻易采取。只有在没有其他选择时(例如,您正在实现Windows不支持的新登录机制)才应该这样做。

如果您想了解有关GINA的更多信息,请查看以下链接

Vista及更高版本

在Windows Vista及更高版本中,GINA已被凭据提供程序(Credential Providers)所取代,因此您需要实现ICredentialProviderCredential接口。虽然这是一个COM接口,但在.NET语言中实现它仍然是一个不好的主意。

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


请注意,这个答案仅适用于XP及更早版本。在Vista及更新的版本中,您需要使用ICredentialProvider - Daniel Hilgarth
谢谢提供的信息,但我实际上正在寻找一个例子。我尝试从MSDN下载5个示例,但我需要验证我的Windows,但该工具不再起作用。有人有非常简单的凭据提供程序,以便我可以解锁我的工作站吗?谢谢! - Basaa
@Justin 你能否看一下我遇到的问题,链接是https://dev59.com/bYbca4cB1Zd3GeqPTDpn?谢谢! - user4032676

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接