【发布时间】:2011-05-16 14:46:07
【问题描述】:
我需要一种方法来验证 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# 编写的。
编辑:来吧,Stack Overflow,你从来没有让我失望过......
【问题讨论】:
标签: c++ windows authentication active-directory