这是我想做的事情:
一个程序,它在网络中侦听一条消息,当收到该消息时,如果用户未登录(例如计算机刚启动并且Windows显示经典登录屏幕),它会自动登录某个用户相应的消息。用户名和密码是已知的,并且在我正在讨论的程序的配置中安全地存储在计算机内。
我想到的是一个从计算机开始的Windows服务,并且还会收听这些消息,如果收到了消息,那么就完成了它的工作
但我不知道从哪里开始
(基本上我试图登录用户而不必输入密码,我说这是存储和已知的 - 需要的东西大多就像Windows 7附带的指纹软件,以及你必须安装的密码在vista / xp中,以便指纹登录可以工作(指纹只是一个例子))
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用Windows自动登录功能执行此操作。
创建一个等待网络套接字上所需数据的服务。确保在网络服务(Tcpip)之后启动此服务。修改winlogon服务属性(手动),以便它取决于您的服务。依赖于,我的意思是winlogon服务是在您的服务之后启动的。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon
到1
在网络套接字上收到数据后,请设置以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword
一旦注册表设置到位,winlogon服务就可以读取这些值并继续登录过程。
有关设置注册表值的更多详细信息,请参阅:http://support.microsoft.com/kb/315231
答案 2 :(得分:0)
我想澄清 Vikram.exe 的建议。
原因AutoAdminLogon
的使用似乎是问题的原生,但在HKLM\...\Winlogon\DefaultPassword
下保存注册表中的密码并不明确。从Windows 2000开始,它支持使用秘密DefaultPassword
,这与DefaultPassword
注册表值具有相同的效果(代码示例请参阅Protecting the Automatic Logon Password)。
强制用户登录或在登录屏幕上执行任何其他操作的另一种方法是切换到Winlogon
桌面(全名WinSta0\Winlogon
)。您可以使用SwitchDesktop和SetProcessWindowStation执行此操作(请参阅Window Stations and Desktops)。如果服务在System
帐户下运行,您将拥有执行此操作的所有权利。根据您的服务配置,可能还需要使用SetTokenInformation和TokenSessionId
来更改当前会话ID。在WinSta0\Winlogon
桌面上运行服务进程后,您可以使用FindWindow
和其他GUI API等函数将任何信息放在其他进程的窗口控件(用户名,密码等)中。因此,您可以实施更复杂的方案。
答案 3 :(得分:0)
首先让我说我不是100%确定如何完全完成这样的应用程序,但我有一些提示。
您需要创建一个在登录前启动的Windows服务,您可以使用C#创建服务,下面链接了一个创建C#服务的示例:
http://msdn.microsoft.com/en-us/library/zt39148a(VS.80).aspx
在您的应用程序中,您可以将属性Startup Type设置为Automatic,这将在启动时自动启动您的服务。
您应该知道Windows服务在帐户的安全上下文中运行,因此您必须让您的服务与privs一起运行才能执行此操作。
在您的服务属性中,您可以单击“登录”,然后
要指定服务使用本地服务帐户,请单击“此帐户”,然后键入以下 NT AUTHORITY \ LocalService 。
要指定服务使用网络服务帐户,请单击“此帐户”,然后键入以下 NT AUTHORITY \ NetworkService 。
当您尝试远程执行此操作时,您必须查看WMI(Windows Management Instrumentation),然后您就可以启动/停止并向您的服务发送命令。
然后您的服务会向登录管理发送命令(不确定名称)。
您可能还希望检查此WOL类,只要它支持Wake On LAN,就会远程切换计算机。如果这是针对企业环境,那么我建议您检查网卡以确保它们受支持
http://www.codeproject.com/KB/IP/wolclass.aspx
我知道我用于学校的一些教育软件叫做CC4(http://www.rm.com/shops/rmshop/story.aspx?cref=PS1026195),我们可以在这个系统中完全按照你需要做的,我不完全确定它是如何完全工作但是我相信它采用了与上述相同的原则。