【问题标题】:ValidateCredentials() returns FALSE on First Call but TRUE on Subsequent CallsValidateCredentials() 在第一次调用时返回 FALSE,但在后续调用时返回 TRUE
【发布时间】:2010-03-18 20:42:18
【问题描述】:

我正在使用以下代码在我的网络服务上对用户进行身份验证:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain, domain))
{
    return context.ValidateCredentials(userName, password);
}

我遇到的障碍是对 ValidateCredentials() 的第一次调用返回 false,但后续调用返回 true。我在这一行放置了一个断点,在中间窗口中我看到了相同的结果:第一个调用返回 false,第二个返回 true,即使调用之间没有任何更改(我)。

“域”是 String.Empty,但我也尝试过使用实际域名并得到相同的结果。

我不是很精通网络管理,所以如果有任何帮助,将不胜感激,

【问题讨论】:

    标签: c# windows-authentication credentials


    【解决方案1】:

    我在控制其他机器进程的程序中遇到了类似的问题。

    我有一段代码在登录方法成功之前一直停滞不前:

    do
    {
    }
    while(!login(usrname, pass));
    

    它没有解释发生了什么螺柱,但它解决了我的问题...

    【讨论】:

    • ValidateCredentials() 调用是否会增加用户的密码重试次数? (请参阅stackoverflow.com/questions/1899724/…)我不想无意中将用户锁定在做这样的事情之外。如果一切都失败了,我可能会在 do{} 中使用睡眠和尝试计数器来做类似的事情。
    • 闻起来很糟糕。这为我解决了这个问题:stackoverflow.com/a/11019430/125406
    猜你喜欢
    • 2020-03-28
    • 2015-05-31
    • 1970-01-01
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多