代码与bool无法正常工作C#

时间:2014-03-11 21:11:35

标签: c# boolean

我一直在研究登录中心草稿(是的,我知道,我会将密码和用户名的存储转移到数据库或稍后散列)我遇到了一个问题,我的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"); }
                }

编辑:愚蠢的错字....感谢你指出它。我现在多次精神上抨击自己......

1 个答案:

答案 0 :(得分:1)

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

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

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

此外,也许是一个案例问题。如果用户名不区分大小写,那么在比较之前最好对案例进行规范化(例如,使用ToLower())。