为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 WebAPI 检查数据库中是否存在记录?

如何使用 WebAPI 检查数据库中是否存在记录?

C#
四季花海 2022-12-04 13:09:48
我一直在寻找适当的方向来检查数据库中是否存在登录记录。我的意图是,当用户凭据从登录页面进入时使用登录名和密码并使用异步检查它是否存在。public async Task<ActionResult<ResultsDTO<LoginDTO>>> PostLogin(LoginFormDTO login){    ResultsDTO<LoginFormDTO> output = new ResultDTO<LoginForFoDTO>();    if (!ModelState.IsValid)    {        output.Success = false;        output.SetValidations(ModelState);    }    LoginFormDTO loginFormDTO = null;    try    {        string encryptedPassword = encryptmystuff(login.pw);        // validate login        log logUser = _context.log.SingleOrDefault(m => m.name == login.Username && m.password == encryptedPassword);    }    catch    {    }}
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

你只需要改变这一行


log logUser = _context.log.SingleOrDefault(m => 

                      m.name == login.Username && m.password == encryptedPassword);


log logUser = await _context.log.SingleOrDefaultAsync(m => 

                      m.name == login.Username && m.password == encryptedPassword);


// return failure if logUser is null

这是 using async/await,它将同步执行您的代码,但在执行数据库查询时不会阻塞线程。


另一方面,如果您使用SingleOrDefault(),那么您将在数据库操作期间阻塞线程,这不是一个好习惯。


查看完整回答
反对 回复 2022-12-04
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信