在我将我的内容保存到SQL后,在我的登录表单上,如果我尝试从数据库中获取信息,即使提供的信息是双向输入 - 大写或小写,信息也会将评估传递给true。这是我的登录代码,请帮助我理解。我正在与实体框架联系数据库.currUser是一个变量,我保存当前的用户信息。
try
{
if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password))
{
var users = from c in context.CustomerTables where c.username == username && c.password == password select c;
List<CustomerTable> table = users.ToList();
if (table.Any())
{
MessageBox.Show("Successfully logged in.\nWelcome " + username + "!", "Welcome", MessageBoxButton.OK, MessageBoxImage.Asterisk);
currUser.username = username;
currUser.password = password;
return true;
}
else
{
MessageBox.Show("Username or password is invalid.", "Error logging in", MessageBoxButton.OK, MessageBoxImage.Error);
return false;
}
}
else
{
MessageBox.Show("Username and password format is invalid!","Null username or password",MessageBoxButton.OK,MessageBoxImage.Warning);
return false;
}
答案 0 :(得分:0)
最简单的解决方法是替换
if (table.Any())
与
if (table.Any() && table[0].username == username && table[0].password == password)
这样做的原因是默认情况下C#中的字符串比较区分大小写。