public async Task <dynamic> UserLogin(ApiLogingBean inEnt) { if (Request.Method.Method == "OPTIONS") { return(null); } ErrorInfo err = new ErrorInfo(); Fun <ErrorInfo> .Valid(inEnt, ModelState, ref err); if (err.IsError) { return(err); } dynamic reEnt = await Task.Run(() => Fun <ErrorInfo> .Func(api.UserApi.UserLogin, ref err, inEnt)); if (err.IsError) { return(err); } FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(0, inEnt.loginName, DateTime.Now, DateTime.Now.AddHours(1), true, string.Format("{0}&{1}", inEnt.loginName, reEnt.Guid), FormsAuthentication.FormsCookiePath); //返回登录结果、用户信息、用户验证票据信息 if (err.IsError) { return(err); } reEnt.Ticket = FormsAuthentication.Encrypt(ticket); return(reEnt); }
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="inFun"></param> /// <returns></returns> public static dynamic Func(MyAction myAction, ref ErrorInfo err, ApiLogingBean inEnt) { try { var r = myAction(ref err, inEnt); return(r); } catch (Exception e) { err.IsError = true; err.Message = e.Message; return(err); } }
public async Task <dynamic> LoginReg(ApiLogingBean inEnt) { if (Request.Method.Method == "OPTIONS") { return(null); } ErrorInfo err = new ErrorInfo(); Fun <ErrorInfo> .Valid(inEnt, ModelState, ref err); if (err.IsError) { return(err); } dynamic reEnt = await Task.Run(() => Fun <ErrorInfo> .Func(api.UserApi.LoginReg, ref err, inEnt)); if (err.IsError) { return(err); } return(reEnt); }
public ErrorInfo LoginReg(ref ErrorInfo err, ApiLogingBean inEnt) { #region 检测输入 if (string.IsNullOrEmpty(inEnt.loginName)) { err.IsError = true; err.Message = "电话号码不能为空"; return(err); } if (!inEnt.loginName.IsOnlyNumber() || inEnt.loginName.Length != 11) { err.IsError = true; err.Message = "电话号码格式不正确"; return(err); } if (!Fun.CheckPassword(ref err, inEnt.passWord)) { err.Message = string.Format("密码复杂度不够:{0}", err.Message); err.IsError = true; return(err); } #endregion using (DBEntities db = new DBEntities()) { #region 检测验证码 if (AppSet.VerifyCode) { var nowDate = DateTime.Now.AddMinutes(-30); var codeNum = db.fa_sms_send.Where(x => x.ADD_TIME > nowDate && x.PHONE_NO == inEnt.loginName && x.CONTENT == inEnt.code ).Count(); if (codeNum == 0) { err.IsError = true; err.Message = "验证码无效"; return(err); } } #endregion var userList = db.fa_user.Where(x => x.LOGIN_NAME == inEnt.loginName).ToList(); #region 检测电话号码是否存在 if (userList.Count() > 0) { err.IsError = true; err.Message = "电话号码已经存在,请更换电话号码"; return(err); } #endregion var loginList = db.fa_login.Where(x => x.LOGIN_NAME == inEnt.loginName).ToList(); #region 添加登录账号 if (loginList.Count() == 0) { LOGIN inLogin = new LOGIN(); inLogin.LOGIN_NAME = inEnt.loginName; inLogin.PASSWORD = inEnt.passWord; Z_Login zLogin = new Z_Login(); var isAddSucc = zLogin.Login_Save(db, null, ref err, inLogin, null); if (isAddSucc == null) { return(err); } } #endregion #region 添加user TUser inUser = new TUser(); inUser.LOGIN_NAME = inEnt.loginName; inUser.NAME = inEnt.userName; var user = Mapper.Map <fa_user>(inUser); user.ID = Fun.GetCurrvalSeqID <fa_user>(); db.fa_user.Add(user); #endregion //var userInfo = db.fa_user_info.SingleOrDefault(x => x.ID == user.ID); //if (userInfo == null) //{ // userInfo = new fa_user_info { ID = user.ID }; // db.fa_user_info.Add(userInfo); //} err.Message = user.ID.ToString(); // 提交事务数据 Fun.DBEntitiesCommit(db, ref err); return(err); } }
public GlobalUser UserLogin(ref ErrorInfo err, ApiLogingBean inEnt) { GlobalUser gu = new GlobalUser(); if (string.IsNullOrEmpty(inEnt.loginName) || string.IsNullOrEmpty(inEnt.passWord)) { err.IsError = true; err.Message = "用户名和密码不能为空"; return(gu); } using (DBEntities db = new DBEntities()) { var Login = db.fa_login.FirstOrDefault(x => x.LOGIN_NAME == inEnt.loginName); var user = db.fa_user.FirstOrDefault(x => x.LOGIN_NAME == inEnt.loginName); if (Login == null || user == null) { err.IsError = true; err.Message = "用户名或者密码错误"; return(gu); } else { if (Login.IS_LOCKED == 1) { err.IsError = true; err.Message = string.Format("用户已被锁定【{0}】", Login.LOCKED_REASON); return(gu); } if (Login.PASSWORD.ToUpper() != inEnt.passWord.Md5().ToUpper() && Login.PASSWORD.ToUpper() != inEnt.passWord.SHA1().ToUpper()) { #region 密码错误 int times = 5; if (Login.FAIL_COUNT == 0) { Login.FAIL_COUNT = 1; } if (inEnt.passWord != "Easyman123@@@") { err.IsError = true; err.Message = string.Format("用户名或者密码错误,还有{0}次尝试机会", (times - Login.FAIL_COUNT).ToString()); if (Login.FAIL_COUNT >= times) { user.IS_LOCKED = 1; Login.IS_LOCKED = 1; Login.LOCKED_REASON = string.Format("用户连续5次错误登陆,帐号锁定。"); Login.FAIL_COUNT = 0; } else { Login.FAIL_COUNT++; } Fun.DBEntitiesCommit(db, ref err); return(null); } #endregion } else //密码正确 { Login.FAIL_COUNT = 0; } var obj = UserLogin(db, ref err, inEnt.loginName, inEnt.imei); Fun.DBEntitiesCommit(db, ref err); if (obj == null || err.IsError) { return(null); } else { return((GlobalUser)obj); } } } }