我需要一种方法来在Windows上验证用于本地C++的用户/密码对。 输入是用户名和密码,用户可以是DOMAIN \ user格式。验证域用户凭据
基本上我需要编写一个函数: 如果用户/密码是一个有效的本地帐户,则返回true。 (第1部分) 如果用户/密码在给定的域上有效,也返回true。 (第2部分) 否则返回false。
使用KB180548我解决了(部分1),(但我不得不也检查用户名是有效用户,因为未能与空密码的用户 - 丑陋的解决方法,但它的工作原理)
然而,对于任何域除“。”外,上面的KB示例代码对任何用户/传递对都起作用(不正确)。
我试过使用ldap_bind_s,但它成功的不正确的用户/传球对(可怕的来宾帐户?)。另外,对于“。”域名,它与LDAP_SERVER_DOWN有效的用户/密码失败(可能是因为本地主机不是域控制器?)
也许这些概念中的一些我不清楚。我希望至少我的问题得到明确解释。 我没有卡住任何方法,因为它可以在C++本机代码中实现。
这个问题C#: How to validate domain credentials?似乎已经明白了(除了没有接受的答案)。唉,它是在C#中。
编辑:来吧,堆栈溢出,你从来没有让我失望之前...
我认为这是最接近的答案。我发现在加入域的PC上我的代码工作。在测试PC上(通过VPN连接到与域控制器相同的LAN),代码失败。 – user581243 2011-05-23 09:35:37