GET方法传递多参数时如何修改LINQ查询实现多条件同时匹配
代码修改方式
直接在原有LINQ的where条件后追加&& g.password == password即可,修改后的完整代码如下:
[Route("api/LoginValues/itemcode/{username}/{password}")] [HttpGet] public IEnumerable<AC_Attendance> Get(string username, string password ) { var list = from g in db.AC_Attendances where g.username == username && g.password == password select g; return list; }
也可以用Lambda形式的LINQ写法实现相同效果:
var list = db.AC_Attendances.Where(g => g.username == username && g.password == password);
注意事项
- 当前用GET接口传递密码的方式存在安全风险:路径参数会被服务器访问日志、中间代理日志多处留存,容易泄露敏感信息,建议改用POST请求,将账号密码放在加密的请求体中传输
- 数据库不要明文存储用户密码,建议存储加盐后的密码哈希值,校验时将传入密码做相同的加盐哈希运算后再与库中值比对,避免拖库导致密码直接泄露
内容的提问来源于stack exchange,提问作者Nurul Nabila Mahadi
相关产品推荐
相关产品推荐

