ValidateUser而不是LogonUser?

时间:2009-10-08 09:01:14

标签: c++ security windows-xp

我们正在尝试“锁定”一台计算机,以便我们拥有Windows XP的通用登录帐户,该帐户的权限很少。然后我们的软件通过一个启动器启动,该启动器将其作为更多特权用户运行,允许它访问文件系统。

然后,运营商将登录我们的软件,我们希望使用win32 LogonUser()功能验证其凭据。

我们看到的问题是,我们希望使用“拒绝本地登录”组策略设置软件操作员,但设置此操作会阻止LogonUser()函数工作。

我知道我们可以通过将LOGON32_LOGON_NETWORK而不是LOGON32_LOGON_NETWORK传递给LogonUser()来解决这个问题,但我并不是真的想做,因为它会产生其他问题。相反,我想知道在C ++中是否有类似C#的ValidateUser()函数?

(顺便说一下,如果相关,我们正在使用VS2003进行编译)

2 个答案:

答案 0 :(得分:1)

您可以使用WNetAddConnection2 API验证一组凭据,以建立与共享的连接。你可以连接到\\ YOURDC \ IPC $或其他东西。

验证完凭证后,请不要忘记释放连接。

答案 1 :(得分:1)

如果您想要更好地控制登录过程,可以使用Gina dll替换自己的内置登录。 Writing your own可能意味着更多工作,然后只为某些API调用找到正确的参数,但如果您正在寻找完全自定义,这可能是您的解决方案。