Jag*_*ggu 5 c# linq entity-framework
我只想在确切的密码和大小写匹配时才想要用户对象.但是,即使密码的大小写不同,此查询也会获取结果:
db.Users.Where(u => u.Username.ToLower() == username.ToLower() &&
u.Password == password).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
最简单的方法是在DB下根据区分大小写的规则进行用户名匹配,并在其区分大小写的规则下使用.NET中的密码匹配:
db.Users.Where(u => u.Username == username).ToList().Where(u => u.Password == password).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
在ToList()反对基于来自基于数据库的LINQ移动LINQ,并因为只会有一个匹配的情况下,无论如何,这样做对性能的影响可以忽略不计.
仍然存在将密码存储在数据库中的问题!
| 归档时间: |
|
| 查看次数: |
4070 次 |
| 最近记录: |