【发布时间】:2020-05-01 21:41:33
【问题描述】:
我正在尝试使用 sql server 在 C# 中使用 linq 匹配用户名和密码
//verify the user.
var UserDetails =
(from user in con.ios_Users
where (user.LOGIN == LogReq.userName && user.PASSWORD == LogReq.password && user.ACTIVE != 0)
select new
{
user.ID,
user.TYPEDESCR,
user.USERNAME
}).ToList();
在上面的代码中,如果我传递用户名 - demo 和密码 - demo123 但在数据库中用户名是 - DeMo 和密码是 DeMo123,它会返回数据用户数据 如何使这个 linq 查询区分大小写:(
提前致谢:)
【问题讨论】:
-
尝试使用 Equals 方法。
user.PASSWORD.Equals(LogReq.password) -
强制性的,fwiw,不要将密码以明文形式存储在数据库中——或者任何地方
-
@Dumisani :尝试了您的代码,它返回的数据不区分大小写:(
-
最好不要存储实际密码,而是存储它的哈希值。那么至少会区分大小写
-
拜托拜托:现在停止;这是一个严重的安全问题,而不是微不足道的问题,并且您仅通过拥有这些数据就对您的用户造成了积极的伤害;您不得出于身份验证的目的存储密码 - 这不是您进行身份验证的方式;如果这是一个学生项目(我们偶尔会看到),请借此机会告诉你的老师/讲师他们错了(如果你愿意,可以发给我;我很好!);如果这是“真实”的东西,STOOOOOPP;这是非常非常错误的。
标签: c# linq asp.net-web-api