我正在使用PrinciaplContext.ValidateCredentials来针对本地计算机验证一组凭据:
string account = Context.ReadLine();
string pass = Context.ReadLine();
using (var context = new PrincipalContext(ContextType.Machine))
{
bool valid = context.ValidateCredentials(account, pass);
Console.WriteLine("valid: " + (valid ? "true" : "false"));
}
控制台应用程序正在以管理员身份执行,我正在尝试验证管理员帐户/密码。该计算机正在运行Windows XP,并且不属于域。
无论密码是正确还是不正确,在属于域的其他Windows XP计算机上运行相同的代码始终返回true。如果我使用ContextType.Domain指定帐户正确验证的域。
ValidateCredentials是否在针对XP的机器上下文中不起作用?还有其他问题我不在这里吗?
答案 0 :(得分:2)
PrincipalContext
类是DirectoryServices
命名空间的一部分。如果没有域名,就没有目录。因此,如果XP计算机不是域的成员,则对目录进行身份验证的调用将失败。