コード例 #1
0
        public void CheckTelVerifyCode(System.Web.HttpContext context)
        {
            string cellphone       = context.Request["cellphone"];
            string phoneVerifyCode = context.Request["CellphoneVerifyCode"].ToLower();
            string selectValue     = context.Request["selectValue"];

            if (selectValue == "1")
            {
                if (string.IsNullOrEmpty(cellphone))
                {
                    this.message = "{\"success\":\"false\",\"msg\":\"请输入手机号码\"}";
                    return;
                }
                if (string.IsNullOrEmpty(phoneVerifyCode))
                {
                    this.message = "{\"success\":\"false\",\"msg\":\"请输入验证码\"}";
                    return;
                }

                if (!TelVerifyHelper.CheckVerify(cellphone, phoneVerifyCode))
                {
                    this.message = "{\"success\":false,\"msg\":\"手机验证码验证错误\"}";
                    return;
                }
                else
                {
                    this.message = "{\"success\":true,\"msg\":\"手机验证码验证成功\"}";
                }
            }

            if (selectValue == "2")
            {
                object obj = HiCache.Get(cellphone + "email");
                if (obj == null)
                {
                    this.message = "{\"success\":false,\"msg\":\"邮箱验证码验证错误\"}";
                    return;
                }

                if (phoneVerifyCode.ToLower() != obj.ToString().ToLower())
                {
                    this.message = "{\"success\":false,\"msg\":\"邮箱验证码验证错误\"}";
                    return;
                }

                else
                {
                    HiCache.Remove(cellphone + "email");
                    this.message = "{\"success\":true,\"msg\":\"邮箱验证码验证成功\"}";
                    return;
                }
            }
        }
コード例 #2
0
        public IHttpActionResult SendSMSCode(JObject request)
        {
            Logger.WriterLogger("Account.SendSMSCode, Params: " + request.ToString(), LoggerType.Info);

            ParamSendSMSCode param = new ParamSendSMSCode();

            try
            {
                param = request.ToObject <ParamSendSMSCode>();
            }
            catch
            {
                return(base.JsonFaultResult(new CommonException(40100).GetMessage(), request.ToString()));
            }

            string accessToken   = param.accessToken;
            string sessionKey    = "";
            string sessionSecret = "";

            // 验证令牌
            int accessTookenCode = VerifyAccessToken(accessToken, out sessionKey, out sessionSecret);

            if (accessTookenCode > 0)
            {
                return(base.JsonFaultResult(new CommonException(accessTookenCode).GetMessage(), request.ToString()));
            }

            string mobile = param.Mobile;
            int    cType  = param.CType;

            if (string.IsNullOrEmpty(mobile))
            {
                return(base.JsonFaultResult(new FaultInfo(40100, "手机号码为空"), request.ToString()));
            }
            if (!System.Text.RegularExpressions.Regex.IsMatch(mobile, "^(13|14|15|17|18)\\d{9}$"))
            {
                return(base.JsonFaultResult(new FaultInfo(40100, "请输入正确的手机号码"), request.ToString()));
            }

            if (cType == 1 && UserHelper.IsExistCellPhoneAndUserName(mobile) > 0)
            {
                return(base.JsonFaultResult(new FaultInfo(40100, "已经存在相同的手机号码"), request.ToString()));
            }

            int    channel  = param.channel;
            int    platform = param.platform;
            string ver      = param.ver;

            // 保存访问信息
            base.SaveVisitInfo("", channel, platform, ver);

            SiteSettings settings = HiContext.Current.SiteSettings;

            if (!settings.SMSEnabled || string.IsNullOrEmpty(settings.SMSSettings))
            {
                return(base.JsonFaultResult(new FaultInfo(40999, "手机服务未配置"), request.ToString()));
            }

            //生成随机短信验证码
            string     verifyCode = HiContext.Current.GenerateRandomNumber(4);
            ConfigData configData = new ConfigData(HiCryptographer.Decrypt(settings.SMSSettings));
            SMSSender  sMSSender  = SMSSender.CreateInstance(settings.SMSSender, configData.SettingsXml);
            string     smsContent = string.Format(SMS_FORART, verifyCode);
            string     msg;

            bool flag = sMSSender.Send(mobile, smsContent, out msg);

            if (flag)
            {
                // 保存到数据库
                Verify verfyinfo = new Verify();
                verfyinfo.VerifyCode = verifyCode;
                verfyinfo.CellPhone  = mobile;
                verfyinfo.CType      = cType;
                TelVerifyHelper.CreateVerify(verfyinfo);

                Verify verifyto = new TelVerifyDao().GetVerify(mobile);

                if (verifyto != null && verifyto.CType == cType && verifyto.VerifyCode == verifyCode)
                {
                    StandardResult <string> okResult = new StandardResult <string>();
                    okResult.code = 0;
                    okResult.msg  = "成功返回短信验证码";
                    okResult.data = base.Encrypt(verifyCode, sessionKey, sessionSecret);

                    return(base.JsonActionResult(okResult));
                }

                return(base.JsonFaultResult(new CommonException(40205).GetMessage(), request.ToString()));
            }

            return(base.JsonFaultResult(new CommonException(40999).GetMessage(), request.ToString()));
        }
コード例 #3
0
        public void ResetPsssword(System.Web.HttpContext context)
        {
            string username       = context.Request["userName"];
            string password       = context.Request["password"];
            string cellphone      = context.Request["cellphone"];
            string selectValue    = context.Request["selectValue"];
            string cellVerifyCode = context.Request["cellVerifyCode"];

            if (String.IsNullOrEmpty(password))
            {
                this.message = "{\"success\":\"false\",\"msg\":\"密码不能为空\"}";
                return;
            }

            if (!string.IsNullOrEmpty(password) && password.Length < 6)
            {
                this.message = "{\"success\":\"false\",\"msg\":\"密码长度至少6位\"}";
                return;
            }


            if (selectValue == "1")
            {
                if (!TelVerifyHelper.CheckVerify(cellphone, cellVerifyCode))
                {
                    this.message = "{\"success\":false,\"msg\":\"手机验证码验证过期\"}";
                    return;
                }
            }
            Member member = Users.GetUser(0, username, false, true) as Member;

            if (member == null)
            {
                this.message = "{\"success\":\"false\",\"msg\":\"系统出错\"}";
                return;
            }

            if (member.ChangePasswordWithoutAnswer(password))
            {
                //Messenger.UserPasswordChanged(member, password);
                Member newmember = Users.GetUser(0, username, false, true) as Member;
                if (newmember != null)
                {
                    //设置缓存
                    Hashtable hashtable = Users.UserCache();
                    hashtable[Users.UserKey(username)] = newmember;

                    //cookie替换
                    string     name        = "Vshop-Member";
                    HttpCookie httpCookie2 = new HttpCookie("Vshop-Member");
                    httpCookie2.Value   = Globals.UrlEncode(username);
                    httpCookie2.Expires = System.DateTime.Now.AddDays(7);
                    httpCookie2.Domain  = HttpContext.Current.Request.Url.Host;
                    if (HttpContext.Current.Response.Cookies[name] != null)
                    {
                        HttpContext.Current.Response.Cookies.Remove(name);
                    }
                    HttpContext.Current.Response.Cookies.Add(httpCookie2);
                }
                this.message = "{\"success\":\"true\",\"msg\":\"你已经成功的修改了登录密码\"}";
                return;
            }
            else
            {
                this.message = "{\"success\":\"false\",\"msg\":\"密码修改失败\"}";
                return;
            }
        }