Ejemplo n.º 1
0
        private async Task <int> CheckHisLogin(HisLoginViewModel model)
        {
            var login = CheckHisLogin_PwdCheck(model);

            await SignInProcess(login, model.StationId, findDepartId(login.DoctorId.Value, model.StationId), model.LoginExtMobile);

            return(login.CustomerId.Value);
        }
Ejemplo n.º 2
0
 //修改接诊科室
 public Task <IActionResult> ChangeDepart(int departId)
 {
     Models.ViewModel.HisLoginViewModel model = new HisLoginViewModel()
     {
         DepartId  = departId,
         StationId = UserSelf.StationId
     };
     return(ReLogin(model));
 }
Ejemplo n.º 3
0
        private vwCHIS_Sys_Login CheckHisLogin_PwdCheck(HisLoginViewModel model, bool pwdEncrypt = true)
        {
            var login = GetLoginInfoName(model.LoginName);

            if (login == null)
            {
                throw new Exception("没有找到该登录信息。");
            }
            if (model.IsPasswordVCode) //验证码登录
            {
                if (model.LoginName.GetStringType().IsMobile)
                {
                    var vcode = _db.CHIS_DataTemp_SMS.AsNoTracking()
                                .Where(m => m.PhoneCode == model.LoginName && m.VCodeProp == "DPWD" && m.CreatTime > DateTime.Now.AddMinutes(-10))
                                .OrderByDescending(m => m.CreatTime).FirstOrDefault();
                    if (vcode == null)
                    {
                        throw new Exception("没有获取到动态密码的信息");
                    }
                    if ((DateTime.Now - vcode.CreatTime.Value).TotalSeconds > 240)
                    {
                        throw new Exception("验证动态密码超时");
                    }
                    if (model.LoginPassword != (pwdEncrypt ? Ass.Data.Secret.MD5(vcode.VCode) : vcode.VCode))
                    {
                        throw new Exception("验证动态密码错误!");
                    }
                }
                else if (model.LoginName.GetStringType().IsEmail)
                {
                    var vcode = _db.CHIS_DataTemp_SendMailVCode.AsNoTracking()
                                .Where(m => m.EmailAddress == model.LoginName && m.VCodeProp == "DPWD" && m.CreatTime > DateTime.Now.AddMinutes(-10))
                                .OrderByDescending(m => m.CreatTime).FirstOrDefault();
                    if (vcode == null)
                    {
                        throw new Exception("没有获取到动态密码的信息");
                    }
                    if ((DateTime.Now - vcode.CreatTime.Value).TotalSeconds > 120)
                    {
                        throw new Exception("验证动态密码超时");
                    }
                    if (model.LoginPassword != (pwdEncrypt ? Ass.Data.Secret.MD5(vcode.VCode) : vcode.VCode))
                    {
                        throw new Exception("验证动态密码错误!");
                    }
                }
                else
                {
                    throw new Exception("非手机号码或邮箱,不能使用动态密码登录。");
                }
            }
            else
            {
                //密码是明码,后续改成md5加密码
                if (login.LoginPassword.IsEmpty())
                {
                    throw new Exception("没有设置密码");
                }

                if ((pwdEncrypt ? Ass.Data.Secret.MD5(login.LoginPassword) : login.LoginPassword) != model.LoginPassword)
                {
                    throw new Exception("密码错误!");
                }
            }

            return(login);
        }