我们正在尝试“锁定”一台计算机,以便我们拥有Windows XP的通用登录帐户,该帐户的权限很少。然后我们的软件通过一个启动器启动,该启动器将其作为更多特权用户运行,允许它访问文件系统。
然后,运营商将登录我们的软件,我们希望使用win32 LogonUser()
功能验证其凭据。
我们看到的问题是,我们希望使用“拒绝本地登录”组策略设置软件操作员,但设置此操作会阻止LogonUser()函数工作。
我知道我们可以通过将LOGON32_LOGON_NETWORK
而不是LOGON32_LOGON_NETWORK
传递给LogonUser()
来解决这个问题,但我并不是真的想做,因为它会产生其他问题。相反,我想知道在C ++中是否有类似C#的ValidateUser()
函数?
(顺便说一下,如果相关,我们正在使用VS2003进行编译)
答案 0 :(得分:1)
您可以使用WNetAddConnection2
API验证一组凭据,以建立与共享的连接。你可以连接到\\ YOURDC \ IPC $或其他东西。
验证完凭证后,请不要忘记释放连接。
答案 1 :(得分:1)
如果您想要更好地控制登录过程,可以使用Gina dll替换自己的内置登录。 Writing your own可能意味着更多工作,然后只为某些API调用找到正确的参数,但如果您正在寻找完全自定义,这可能是您的解决方案。