如何在C#中验证用户名和密码?

时间:2016-08-29 13:20:11

标签: c#

我正在尝试编写一些简单的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");
}

1 个答案:

答案 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)
{ ... }