我正在使用PrinciaplContext.ValidateCredentials根据本地计算机validation一组凭据:
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")); }
控制台应用程序正在以pipe理员身份执行,我试图validationpipe理员帐户/密码。 该机器正在运行Windows XP,而不是域的一部分。
在属于域的不同Windows XP计算机上运行相同的代码始终返回true,无论密码是正确还是不正确。 如果我使用ContextType.Domain指定帐户正确validation的域。
ValidateCredentials是否在XP的机器上下文中不起作用? 有没有其他的错误我没有在这里考虑?
PrincipalContext
类是DirectoryServices
名称空间的一部分。 没有域名就没有目录。 因此,如果XP机器不是域的成员,则对目录进行认证的调用将失败。