对于具有大小写混合用户名的帐户,PrincipalContext.ValidateCredentials始终返回false

时间:2014-05-12 10:46:54

标签: c# active-directory account-management

我有两个域用户帐户。一个具有小写用户名,另一个具有混合大小写的用户名,如“JohnSmith”。 ValidateCredentials适用于小写用户名。但是,对于混合大小写的用户名,它始终返回false。

PrincipalContext myDomain = new PrincipalContext(ContextType.Domain, "MyDomain");
bool loginSucceded = myDomain.ValidateCredentials(userName, password);

我可以使用以下代码查看两个帐户的属性(两者都已启用)。属性LastBadPasswordAttempt建议ValidateCredentials返回false而不是因为密码错误。

PrincipalContext myDomain = new PrincipalContext(ContextType.Domain, "MyDomain");
UserPrincipal user = UserPrincipal.FindByIdentity(myDomain, IdentityType.SamAccountName, userName);
if (user != null)
{
    Console.WriteLine("Name: " + user.Name);
    Console.WriteLine("DisplayName: " + user.DisplayName);
    Console.WriteLine("BadLogonCount: " + user.BadLogonCount);
    Console.WriteLine("Enabled: " + user.Enabled);
    Console.WriteLine("LastLogon: " + user.LastLogon);
    Console.WriteLine("LastBadPasswordAttempt: " + user.LastBadPasswordAttempt);
}

将转换为小写的混合大小写用户名传递也无济于事。

UPD:响应kyndigs的评论,它是调查使用ValidateCredentials的应用程序中的问题的一部分。一些用户报告说他们无法登录,并且这些用户拥有大小写混合用户名。

0 个答案:

没有答案