带有bool的代码不工作

本文关键字:工作 代码 bool 带有 | 更新日期: 2023-09-27 17:49:30

我一直在做一个登录中心草案(是的,我知道,我会将密码和用户名的存储转移到数据库或稍后散列它),我遇到了一个问题,我的bool代码,看看用户名是否存在。检查登录用户的bool码总是false。编辑:小代码片段:

bool userContain = File.ReadAllLines("C:''Users''Public''Passwords.txt").Contains(loginUser);
                Console.WriteLine(userContain);
                if (loginUser == "")
                { Console.WriteLine("Error.... Username is empty.. stop trying to glitch the system ;("); }
                else
                {
                    if (userContain == true)
                    {
                        if (lineCount == countLine) { Console.WriteLine("Logged In!"); loginAttempt = 1; } else { Console.WriteLine("Error:Password or User incorrect!"); }
                    }
                    else { Console.WriteLine("Error, Username does not exist"); }
                }

编辑:愚蠢的打字错误....谢谢你指出来。我现在在精神上多次自责.....

带有bool的代码不工作

你的版本检查是否有一行等于用户名,当它可能只是行的一部分。

bool userContain = File.ReadAllLines("C:''Users''Public''Passwords.txt").Any(s=>IsInLine(s,userLogin));

实现IsInLine,使其匹配您的数据表示-例如,如果密码文件中的每行都是格式为"mechron,123", IsInLine可以使用string.Split(',')并与第一个令牌进行比较。

而且,这可能是一个案例问题。如果用户名不区分大小写,那么最好在比较之前将大小写规范化(例如使用ToLower())。