是否有任何API可以在Windows中获取当前登录用户的名称和密码?
先感谢您.
密码:不,出于安全原因,这不会被保留 - 它被使用,然后被丢弃.您可以从注册表中检索此用户的加密密码,并获得足够的权限,然后使用彩虹表等方法对其进行解密,但这使用当前方法非常耗费资源并且非常耗时.提示用户好多了.
或者,如果你想像Novell那样实现某种"单点登录"系统,你应该通过GINA(Vista之前)或Credential Provider(Vista)来实现,这将导致您的代码被赋予用户名和登录时的密码,密码可用的唯一时间.
对于用户名,获取当前用户名(运行代码的用户名)很简单:AdvApi32.dll中的GetUserName函数可以为您完成此操作.
如果您作为服务运行,则需要记住没有人"登录用户":除了任何实际的人之外,还有几个在任何时候,例如LocalSystem,NetworkService,SYSTEM和其他帐户.本文提供了一些示例代码和文档.