public bool sendCodeToPhone(string phoneNumber, LoginDALController loginDAL) { bool sendOk = false; string phoneCode = getrandom.Next(100000, 999999).ToString(); int row = loginDAL.InsertPhoneCode(phoneNumber, phoneCode, GetIp()); if (row == 1) { #region 由云片网发送短信到手机上 string RptAppKey = ConfigurationManager.AppSettings["RptAppKey"].ToString(); string RptAppSecret = ConfigurationManager.AppSettings["RptAppSecret"].ToString(); string SendMessageUrl = ConfigurationManager.AppSettings["SendMessageUrl"].ToString(); string timestamp = GetTimeStamp(); string innerJson = "{'appKey':'" + RptAppKey + "','timestamp':" + timestamp + ",'appSecret':'" + (RptAppSecret + timestamp).GetMD5String() + "','data':{'templateCode':'DLYZ','mobile':'" + phoneNumber + "','params':{'code':'" + phoneCode + "','minute':120}}}"; YPResultSet result = ReqPost.PostSendMicroMessage(innerJson, SendMessageUrl); if (result.code == "0") { sendOk = true; } else { sendOk = false; } #endregion } return(sendOk); }
public JsonResult phonelogin(FormCollection form) { var phonenumber = form["phonenumber"]; var phonecode = form["phonecode"]; var account = form["account"]; if (Session["loginUser"] != null) { int errorTime = 0; #region 检验手机短信验证码 LoginDALController loginDAL = new LoginDALController(_db); if (!loginDAL.CkeckPhoneCode(phonenumber, phonecode, ref errorTime)) { int residueTime = 5 - errorTime; if (residueTime == 5) { return(Json(new { code = 1, message = "亲,你还没发送短信呢,别调皮哦!" })); } else if (residueTime == 0) { return(Json(new { code = 1, message = "手机验证码输入错误次数过多,请稍后再试!" })); } return(Json(new { code = 1, message = "手机验证码输入有误请重新再输! 输入错误次数还剩 " + residueTime + " 次" })); } #endregion Session.Remove("loginUser"); Session["User"] = phonenumber; return(Json(new { code = 0, url = "/Report/Index" })); } else { return(Json(new { code = 1, message = "" })); } }
public JsonResult sendValidationCodeByPhone(string phonenumber, string __RequestVerificationToken, string account) { ////第一步 验证用户是否通过了 第一步验证 if (Session["loginUser"] == null) { return(Json(new { code = 1, message = "你还没有通过账号密码认证哦!一步一步来" })); } else { if (Session["loginUser"].ToString() != phonenumber) { return(Json(new { code = 1, message = "请使用正确的手机号码!" })); } } LoginDALController loginDAL = new LoginDALController(_db); //第二步 2.1 if (!loginDAL.checkUserSendPhoneCode30After(phonenumber)) { //第二步 2.2 if (!sendCodeToPhone(phonenumber, loginDAL)) { //删除新增的数据 loginDAL.DeleteVlidateCode(phonenumber); return(Json(new { code = 1, message = "短信发送失败,请联系管理员!" })); } } else { return(Json(new { code = 1, message = "2小时内验证码有效,耐心等候短信验证码!" })); } return(Json(new { code = 0, message = "发送短信成功" })); }
public ActionResult Index(FormCollection form) { var account = form["account"]; var password = form["password"]; var validatecode = form["validatecode"]; #region 检验验证码 if (!string.IsNullOrWhiteSpace(validatecode)) { if (Session["ValidateCode"] != null) { if (Session["ValidateCode"].ToString() != validatecode) { Session.Clear(); return(Json(new { code = 1, message = "请输入正确的验证码!" })); } } else { return(Json(new { code = 1, message = "验证码失效!" })); } } else { return(Json(new { code = 1, message = "请输入验证码!" })); } #endregion #region 检验用户 if (account.IsNotEmpty()) { if (password.IsNotEmpty()) { string dbpassword = string.Empty; LoginDALController loginDAL = new LoginDALController(_db); sys_users sysUser = loginDAL.CheckUser(account); if (sysUser != null) { dbpassword = sysUser.userpassword; dbpassword = (validatecode + ("avgd_rpt.edsmall.cn" + dbpassword).GetMD5String()).GetMD5String(); } if (password != dbpassword) { return(Json(new { code = 1, message = "用户名密码错误!" })); } #region ---- 跳过短信验证 ---- //前端验证也需要改 //Session["User"] = sysUser.Telephone; //return Json(new //{ // code = 0, // url = "/Report/Index" //}); #endregion Session["loginUser"] = sysUser.Telephone; Session.Remove("ValidateCode"); return(Json(new { code = 0, data = new { phoneNumber = sysUser.Telephone } })); } } else { return(Json(new { code = 1, message = "用户名不能为空!" })); } #endregion return(View()); }