我正在尝试编写一些简单的c#代码来验证用户名和密码,用户名和密码都已经在代码中。此外,验证来自简单的用户名和密码 - 而不是来自任何sql数据库。
如果验证是正确的,我想打印(输出) - '正确识别',如果用户名和/或密码错误但是我想输出 - '错误识别'。
我的问题(由crashmstr发布)如何检查用户是否输入了硬编码的用户名和密码。这导致 - OP似乎不知道如何检查。
为什么我的代码输出'正确识别',无论输入是什么?
string username = "Pinocchio";
string password = "Disney";
Console.WriteLine("Enter Username: ");
char answer = console.ReadLine()[0];
Console.WriteLine("Enter Password: ");
char answer2 = console.ReadLine()[1];
if (!(username == "Pinocchio" && password == "Disney")) {
Console.WriteLine("Correct Identification");
}
else
{
Console.WriteLine("Wrong Identification");
}
}
}
}
我有这个有效...我总是可以在以后添加更多代码。
string password = "hello";
string username = "how";
if(Console.ReadLine() == password && Console.ReadLine() == username)
{
Console.WriteLine("Correct Identification");
}
else
{
Console.WriteLine("Wrong Identification");
}
答案 0 :(得分:2)
让我们打破你的表达。
此:
(username == "Pinocchio" && password == "Disney")
由于两个字符串匹配,产生true
。
然后在其前面放置一个!
:
(!(username == "Pinocchio" && password == "Disney"))
这会使!true
成为false
。因此,用户名和密码被认为是错误的。
刚删除了!
:
(username == "Pinocchio" && password == "Disney")
我猜你需要这样的东西:
Console.WriteLine("Enter User name: ");
string enteredUsername = console.ReadLine();
Console.WriteLine("Enter Password: ");
string enteredPassword = console.ReadLine();
if (username == enteredUsername && password == enteredPassword)
{ ... }