ValidateCredentials的条件是返回false

问题描述 投票:0回答:1

我正在使用PrincipalContext的 验证证书 方法来验证进入活动目录的身份,但由于某些原因,尽管密码是正确的,而且没有过期,它还是返回false。我已经检查了用户的状态与 用户主体但尽管用户已被启用且未被锁定,它仍然返回false。我也确定最后设置的密码没有过期。

是否有其他因素使ValidateCredentials返回false?

使用的代码。

bool expired = false;
bool blocked = false;
bool disabled = false;
int failedLogins;

Resultado resul = new Resultado();
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, Config.ActiveDirectory.Server,
                                                                            Directory,
                                                                            Config.ActiveDirectory.User,
                                                                            Config.ActiveDirectory.Pass);
UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, userName);

if (user != null)
{
    disabled = (user.Enabled == null || !user.Enabled.Value);
    blocked = user.IsAccountLockedOut();
    expired = user.LastPasswordSet == null || DateTime.UtcNow.Subtract(user.LastPasswordSet.Value).Days >= Config.ActiveDirectory.MaxPassAge;

    failedLogins = user.BadLogonCount; 


    if (domainContext.ValidateCredentials(userName, password))
        resul.ResultCode = 0;
    else
    {
        user = UserPrincipal.FindByIdentity(domainContext, userName);

        if (disabled)
            resul.ResultCode = 7;
        else if (blocked)
            resul.ResultCode = 3;
        else if (failedLogins != user.BadLogonCount)
            resul.ResultCode = 2;
        else
            resul.ResultCode = 4;
    }
}
else
    resul.ResultCode = 1;
return resul;
c# active-directory userprincipal principalcontext
1个回答
0
投票

你也可以使用以下方法检查账户的到期日期 AccountExpirationDate 属性,检查下次登录时是否必须更改密码。

另外,检查下次登录时是否必须更改密码。该 LastPasswordSet 财产将 null 如果是这样的话。

中也有一个说明。文件的 ValidateCredentials 可能是相关的。

২২২২২২২২২২২২২২২২২২২২২২২২২২ userName 参数必须采用 帐号 (例如: 坎贝尔)而不是 域/用户名username@domain.

你有没有试过用该用户名和密码登录电脑?那是确定以下情况的最佳方法 ValidateCredentials 是骗你还是不骗你。

好奇:你为什么要设置 user 到同样的事情,在你的 else 块?这似乎没有必要。

© www.soinside.com 2019 - 2024. All rights reserved.