使用.net解锁本地计算机

Sou*_*mya 8 .net windows

有没有办法,没有使用DLL注入,服务,诸如此类,使用.net解锁本地计算机?Windows用户名和密码可供我的程序使用.

Den*_*nis 5

我认为没有可用于解锁计算机的.NET功能,并没有简短的方法来实现它.但有一种方法.

您需要实现自定义ICredentialProvider组件,将其挂钩到Windows身份验证机制,并实现它与您的应用程序之间的通信.

Windows 7身份验证机制由两部分组成.它们是WinLogon和LogonUI.LogonUI负责显示登录窗口和WinLogon关于用户操作的通知.Winlogon对来自LogonUI的事件做出反应,并执行登录用户,注销用户,锁定会话和解锁会话所需的操作.

Microsoft提供了一种将自定义行为挂钩到LogonUI的机制.为此,您需要创建一个实现ICredentialProvider的COM对象并将其注册到系统中.您的组件可以告诉LogonUI告诉WinLogon解锁会话.

以下是如何构建自定义凭据提供程序的几个示例: 如何在Windows Vista中构建自定义登录UI, 使用凭据提供程序为Windows Vista创建自定义登录体验

此机制适用于Windows Vista和Windows 7.如果要为Windows XP实现相同的结果,则需要使用名为GINA的类似机制.在这里,您可以阅读更多关于GINA:Winlogon和GINA的信息

有一种黑客可以在Windows XP中"解锁"一个会话.

Windows XP中的WinLogon创建了一个额外的桌面,并在用户选择锁定会话时切换到该桌面.可以使用Windows API切换回"普通"桌面.除了WinLogon之外,一切都工作正常,尽管该系统已锁定且对Ctrl-Alt-Del没有反应.我相信它不适用于Windows Vista和7.但你可以试试.它可以比实现自定义凭据提供程序简单.

以下是如何执行此操作的示例:远程解锁Windows工作站

我希望这能回答你的问题.