我试图在本地Windows计算机上验证用户名及其密码。
bool AreUserCredentialsValid(string username, string password)
{
try
{
using(var context = new PrincipalContext(ContextType.Machine))
{
return context.ValidateCredentials(username, password);
}
}
catch
{
return false;
}
}
这适用于大多数情况。在一种情况下,我收到以下错误消息。
由于帐户限制,用户无法登录。可能的原因是不允许使用空白密码,登录时间限制或策略。
仅当我以用户A
身份登录并尝试验证用户A
的凭据时,才会显示此消息。如果我以用户B
身份登录并尝试验证用户A
的凭据,则按预期工作。
我可以使用以下cmd行重现此行为。
runas /user:A notepad
如何在不更改系统设置或用户的情况下验证本地用户的凭据?由于用户能够登录,因此应该可以。