Beispiel #1
0
 /// <summary>
 /// 将登录用户信息写入上下文
 /// </summary>
 /// <param name="userData"></param>
 /// <returns></returns>
 private ApplicationUser ConvertApplicationUser(FrontIdentityUser userData)
 {
     return(new ApplicationUser()
     {
         Id = userData.Id,
         AccessFailedCount = userData.AccessFailedCount,
         ActiveWay = userData.ActiveWay,
         Address = userData.Address,
         Age = userData.Age,
         Area = userData.Area,
         ApprovalStatus = userData.ApprovalStatus,
         Birthday = userData.Birthday,
         City = userData.City,
         CreatedPerson = userData.CreatedPerson,
         CreateTime = userData.CreateTime,
         Email = userData.Email,
         EmailConfirmed = userData.EmailConfirmed,
         FaceImage = userData.FaceImage,
         Gender = userData.Gender,
         GenderName = userData.GenderName,
         IdentityConfirmed = userData.IdentityConfirmed,
         IdentityNumber = userData.IdentityNumber,
         Interest = userData.Interest,
         IsDel = userData.IsDel,
         IsNeedModifyPw = userData.IsNeedModifyPw,
         IsPay = userData.IsPay,
         IsPayName = userData.IsPayName,
         LockoutEnabled = userData.LockoutEnabled,
         LockoutEndDateUtc = userData.LockoutEndDateUtc,
         MLevel = userData.MLevel,
         MLevelName = userData.MLevelName,
         MType = userData.MType,
         MTypeName = userData.MTypeName,
         NickName = userData.NickName,
         No = userData.No,
         Password = userData.Password,
         PasswordHash = userData.PasswordHash,
         PayNumber = userData.PayNumber,
         PhoneNumber = userData.PhoneNumber,
         PhoneNumberConfirmed = userData.PhoneNumberConfirmed,
         Provency = userData.Provency,
         RealName = userData.RealName,
         SecurityStamp = userData.SecurityStamp,
         Status = userData.Status,
         StatusName = userData.StatusName,
         SystemMType = userData.SystemMType,
         SystemMTypeName = userData.SystemMTypeName,
         TwoFactorEnabled = userData.TwoFactorEnabled,
         UpdateTime = userData.UpdateTime,
         UserName = userData.UserName,
         VIN = userData.VIN
     });
 }
Beispiel #2
0
        public async Task <ActionResult> DoLoginByPhone(LoginViewModel model)
        {
            try
            {
                int isFirst = 0;

                if (!string.IsNullOrEmpty(model.Captcha))
                {
                    //第一:确认验证码
                    var validateCode = string.Empty;

                    if (Session["ValidateCode"] != null)
                    {
                        validateCode = Session["ValidateCode"].ToString();
                    }

                    if (!validateCode.Equals(model.Captcha))
                    {
                        return(Json(new { code = 400, url = "/Account/LogonPage", msg = "图片验证码输入有误" }));
                    }
                }
                ReturnResult _captchaResult = _AppContext.UserSecurityApp.ValidateMobileVerifyCode(model.UserName, model.SMSCaptcha);
                if (!_captchaResult.IsSuccess)
                {
                    return(Json(new { code = 400, msg = "短信验证码错误或已过期,请重新获取" }));
                }

                //手机号是注册用直接登陆,否则注册新用户登陆
                ApplicationUser applicationUser;
                if (this.LoginFactory(model, out applicationUser, 2))
                {
                    if (applicationUser != null)
                    {
                        if (applicationUser.IsNeedModifyPw == 1)
                        {
                            return(Json(new { code = 300, msg = " 帐户存在风险, 请先重置密码" }));
                        }
                    }
                    _AppContext.LoginMemRecordApp.Add(applicationUser.Id, applicationUser.NickName, EDataSource.blms_wap);
                    await SignInManager.SignInAsync(applicationUser, model.RememberMe, rememberBrowser : false);

                    //BBSUtil.CheckAndCreateDefaultBBSMember(applicationUser); //new

                    var returnIntegralType = (int)_AppContext.CarServiceUserApp.GetReIntegralTypeByIdentity(applicationUser.IdentityNumber);
                    if (_AppContext.LoginMemRecordApp.IsReMemberShipRequest(applicationUser.Id) && returnIntegralType != -1 && applicationUser.IsPay != 2)
                    {
                        return(Json(new { code = 200, msg = "登录成功", isrequest = 1, returnIntegralType = returnIntegralType, identityNumber = applicationUser.IdentityNumber }));
                    }
                    else
                    {
                        return(Json(new { code = 200, msg = "登录成功", isrequest = 0 }));
                    }
                }
                else //手机号未注册 ,注册并登陆
                {
                    isFirst = 1;
                    var store             = new FrontUserStore <FrontIdentityUser>();
                    var membershipManager = new UserManager <FrontIdentityUser>(store);
                    if (store.CheckUserNameIsExist(model.UserName))
                    {
                        return(Json(new { code = 400, success = false, msg = "系统中已存在此手机号" }));
                    }

                    IdentityResult CreateResult       = null;
                    var            membershipIdentity = new FrontIdentityUser
                    {
                        No                 = _AppContext.MemberNumberApp.GetNumber("1"), //会员卡号
                        NickName           = CommonUtilitys.GetNikeName(),
                        UserName           = model.UserName,                             // model.UserName,
                        PhoneNumber        = model.UserName,
                        Password           = "******" + model.UserName.Substring(model.UserName.Length - 6, 6),
                        Status             = (int)MembershipStatus.Nomal,
                        CreateTime         = DateTime.Now.ToLongTimeString(),
                        CreatedPerson      = "blms_wap",
                        MType              = (int)MembershipType.WhitoutCar,         //非车主
                        MLevel             = (int)MemshipLevel.OneStar,              //级别
                        IsPay              = (int)MembershipPayStatus.NotPay,        //经销商新增的会员均为已缴纳100付费
                        ApprovalStatus     = (int)MembershipApprovalStatus.Activing, //激活中
                        ActiveWay          = (int)MembershipActiveWay.ClientWeb,
                        IsNeedModifyPw     = (int)MembershipNeedModifyPw.No,
                        MLevelBeginDate    = DateTime.Parse(DateTime.Now.ToShortDateString()),
                        MLevelInvalidDate  = DateTime.Parse(DateTime.Now.ToShortDateString()).AddYears(1),
                        AuthenticationTime = DateTime.Parse("1900-01-01")
                    };
                    CreateResult = membershipManager.Create(membershipIdentity, membershipIdentity.Password);
                    // var user = store.FindByNameAsync(model.UserName).Result;
                    if (CreateResult != null && !CreateResult.Succeeded)
                    {
                        var message = "";
                        foreach (var error in CreateResult.Errors)
                        {
                            message += error;
                        }
                        ModelState.AddModelError("", message);
                        return(Json(new { success = false, msg = message }));
                    }

                    this.LoginFactory(model, out applicationUser, 2);
                    _AppContext.LoginMemRecordApp.Add(applicationUser.Id, applicationUser.NickName, EDataSource.blms_wap);
                    await SignInManager.SignInAsync(applicationUser, model.RememberMe, rememberBrowser : false);

                    //BBSUtil.CheckAndCreateDefaultBBSMember(applicationUser); //new

                    _AppContext.UserMessageRecordApp.InsertLoginChangePasswordMessage(applicationUser.Id);
                    return(Json(new { code = 200, msg = "登录成功", first = isFirst }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { code = 400, msg = ex.Message }));
            }
        }