【发布时间】:2013-07-23 03:41:48
【问题描述】:
我们的应用程序有一个登录框,要求用户输入他们的 AD 凭据。我们获取这些凭据,然后调用
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, domain, container, ContextOptions.SimpleBind))
{
return pc.ValidateCredentials(domain + @"\" + username, password, ContextOptions.SimpleBind);
}
验证他们是否输入了有效的登录名/密码对。但我们发现,对 ValidateCredentials 的调用将返回 true 并使用空白密码,我们不知道为什么。无效密码返回 false,但只要用户名正确,空白将返回 true。
【问题讨论】:
-
您是否偶然以与当前登录机器进行测试的用户相同的用户(例如用户名)登录(即您以
domain\user1登录机器而您'正在以domain\user1) 身份登录应用程序? -
我想知道这是否与我看到的对未知用户返回 true 的问题类似?最终找到了答案 - 与启用的访客帐户有关。有关详细信息,请参阅stackoverflow.com/a/7336610/130352。
-
@ChrisJ 不,我们的一位客户有问题,访客帐户已被禁用。仍在试图弄清楚为什么接受空白密码。
标签: c#