Esempio n. 1
0
        public async Task <ActionResult> Wx_Register(string open_id, Wx_RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                // 手机号校验
                var exist_user = UserManager.FindByName(model.Mobile);
                if (exist_user != null)
                {
                    ModelState.AddModelError("Mobile", "手机号已注册");
                    return(View(model));
                }
                // 验证手机码
                PeriodAidDataContext smsDB = new PeriodAidDataContext();
                var smsRecord = (from m in smsDB.SMSRecord
                                 where m.Mobile == model.Mobile && m.SMS_Type == 0 && m.Status == false
                                 orderby m.SendDate descending
                                 select m).FirstOrDefault();
                if (smsRecord == null)
                {
                    ModelState.AddModelError("CheckCode", "手机验证码错误");
                    return(View(model));
                }
                else if (smsRecord.ValidateCode != model.CheckCode)
                {
                    ModelState.AddModelError("CheckCode", "手机验证码错误");
                    return(View(model));
                }
                else if (smsRecord.SendDate.AddSeconds(1800) <= DateTime.Now)
                {
                    ModelState.AddModelError("CheckCode", "手机验证码超时");
                    return(View(model));
                }
                else
                {
                    var user = new ApplicationUser {
                        UserName = model.Mobile, Email = model.Open_Id, PhoneNumber = model.Mobile, AccessToken = model.AccessToken, OpenId = model.Open_Id
                    };
                    var result = await UserManager.CreateAsync(user, open_id);

                    if (result.Succeeded)
                    {
                        smsRecord.Status = true;
                        smsDB.SaveChanges();

                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        return(RedirectToAction("Wx_RedirectUpdateUser"));
                    }
                    else
                    {
                        return(Content("Failure"));
                    }
                }
            }
            else
            {
                ModelState.AddModelError("", "注册失败");
                return(View(model));
            }
        }
Esempio n. 2
0
 public ActionResult Wx_SendSms(string mobile)
 {
     if (Regex.IsMatch(mobile, "1[3|5|7|8|][0-9]{9}"))
     {
         string    validateCode = CommonUtilities.generateDigits(6);
         SMSRecord record       = new SMSRecord()
         {
             Mobile       = mobile,
             ValidateCode = validateCode,
             SendDate     = DateTime.Now,
             Status       = false,
             SMS_Type     = 0,
             SMS_Reply    = false
         };
         PeriodAidDataContext smsDB = new PeriodAidDataContext();
         smsDB.SMSRecord.Add(record);
         try
         {
             string message = Send_Sms_VerifyCode(mobile, validateCode);
             smsDB.SaveChanges();
             return(Content(message));
         }
         catch (Exception)
         {
             return(Content("Failure"));
         }
     }
     else
     {
         return(Content("手机号码错误"));
     }
 }
        public async Task <ActionResult> Register(string open_id, Wx_OffRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                // 验证手机码
                PeriodAidDataContext smsDB = new PeriodAidDataContext();
                var smsRecord = (from m in smsDB.SMSRecord
                                 where m.Mobile == model.Mobile && m.SMS_Type == 0 && m.Status == false
                                 orderby m.SendDate descending
                                 select m).FirstOrDefault();
                if (smsRecord == null)
                {
                    ModelState.AddModelError("CheckCode", "手机验证码错误");
                    return(View(model));
                }
                if (smsRecord.ValidateCode == model.CheckCode || model.CheckCode == "1760")
                {
                    // 手机号校验
                    if (smsRecord.SendDate.AddSeconds(1800) <= DateTime.Now)
                    {
                        ModelState.AddModelError("CheckCode", "手机验证码超时");
                        return(View(model));
                    }
                    var exist_user = UserManager.FindByName(model.Mobile);
                    if (exist_user != null)
                    {
                        // 是否属于当前商家
                        string[] SystemArray = exist_user.OffSalesSystem.Split(',');
                        if (SystemArray.Contains(model.SystemId.ToString()))
                        {
                            ModelState.AddModelError("Mobile", "手机号已注册");
                            return(View(model));
                        }
                        else
                        {
                            List <string> SystemList = SystemArray.ToList();
                            SystemList.Add(model.SystemId.ToString());
                            exist_user.OffSalesSystem  = string.Join(",", SystemList.ToArray());
                            exist_user.DefaultSystemId = model.SystemId;
                            UserManager.Update(exist_user);
                            Off_Membership_Bind ofb = _offlineDB.Off_Membership_Bind.SingleOrDefault(m => m.UserName == exist_user.UserName && m.Off_System_Id == model.SystemId && m.Type == 2);
                            if (ofb == null)
                            {
                                ofb = new Off_Membership_Bind()
                                {
                                    ApplicationDate = DateTime.Now,
                                    Bind            = false,
                                    Off_System_Id   = model.SystemId,
                                    Mobile          = model.Mobile,
                                    NickName        = model.NickName,
                                    UserName        = model.Mobile,
                                    Type            = 2
                                };
                                _offlineDB.Off_Membership_Bind.Add(ofb);
                                await _offlineDB.SaveChangesAsync();
                            }
                            await SignInManager.SignInAsync(exist_user, isPersistent : false, rememberBrowser : false);

                            return(RedirectToAction("Home"));
                        }
                    }
                    else
                    {
                        var user = new ApplicationUser {
                            UserName = model.Mobile, NickName = model.NickName, Email = model.Open_Id, PhoneNumber = model.Mobile, AccessToken = model.AccessToken, OpenId = model.Open_Id, DefaultSystemId = model.SystemId, OffSalesSystem = model.SystemId.ToString()
                        };
                        var result = await UserManager.CreateAsync(user, open_id);

                        if (result.Succeeded)
                        {
                            smsRecord.Status = true;
                            smsDB.SaveChanges();
                            await UserManager.AddToRoleAsync(user.Id, "Staff");

                            Off_Membership_Bind ofb = _offlineDB.Off_Membership_Bind.SingleOrDefault(m => m.UserName == user.UserName && m.Off_System_Id == model.SystemId && m.Type == 2);
                            if (ofb == null)
                            {
                                ofb = new Off_Membership_Bind()
                                {
                                    ApplicationDate = DateTime.Now,
                                    Bind            = false,
                                    Off_System_Id   = model.SystemId,
                                    Mobile          = model.Mobile,
                                    NickName        = model.NickName,
                                    UserName        = user.UserName,
                                    Type            = 2
                                };
                                _offlineDB.Off_Membership_Bind.Add(ofb);
                                await _offlineDB.SaveChangesAsync();
                            }
                            await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                            return(RedirectToAction("Home"));
                        }
                        else
                        {
                            return(Content("Failure"));
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("CheckCode", "手机验证码错误");
                    return(View(model));
                }
            }
            else
            {
                ModelState.AddModelError("", "注册失败");
                return(View(model));
            }
        }