public async Task <IActionResult> ConfirmPassword([Bind("UserName", "UserPwd", "ComfirmPwd")] MoRegisterUser registUser)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrWhiteSpace(registUser.UserPwd))
                {
                    this.MsgBox("密码不能为空!");
                    return(View(registUser));
                }
                else if (string.IsNullOrWhiteSpace(registUser.ComfirmPwd))
                {
                    this.MsgBox("确认密码不能为空!");
                    return(View(registUser));
                }
                else if (registUser.UserPwd != registUser.ComfirmPwd)
                {
                    this.MsgBox("密码和确认密码不相同!");
                    return(View(registUser));
                }

                var key = $"checkConfirmPwd{registUser.UserName}";
                if (!_cache.TryGetValue <MoUserInfo>(key, out var checkUser))
                {
                    return(RedirectToAction(nameof(HomeController.Error), "home", new { msg = "请求已过期,重新操作!" }));
                }

                var user = _context.ToUserInfo.Where(b => b.Id == checkUser.Id && b.Email == checkUser.Email).SingleOrDefault();
                if (user == null)
                {
                    _cache.Remove(key);
                    return(RedirectToAction(nameof(HomeController.Error), "home", new { msg = "重置的密码失败,请稍后重试!" }));
                }

                user.UserPwd = PublicClass._Md5(registUser.UserPwd.Trim());
                var result = await _context.SaveChangesAsync();

                if (result > 0)
                {
                    _cache.Remove(key);
                    this.MsgBox("重置密码成功!");
                }
                else
                {
                    this.MsgBox("重置密码失败!");
                }
            }
            return(View(registUser));
        }
        public async Task <IActionResult> ModifyPwd([Bind("UserName,UserPwd,ComfirmPwd")] MoRegisterUser moRegisterUser)
        {
            if (ModelState.IsValid)
            {
                var user = _db.ToUserInfo.Where(b => b.Id == _MyUserInfo.Id).SingleOrDefault();
                if (user == null)
                {
                    this.MsgBox("修改失败,请稍后重试"); return(View(moRegisterUser));
                }
                user.UserPwd = PublicClass._Md5(moRegisterUser.UserPwd.Trim());
                var result = await _db.SaveChangesAsync();

                if (result > 0)
                {
                    HttpContext.Session.Set <MoUserInfo>(HttpContext.Session.SessionKey(), _MyUserInfo);
                    this.MsgBox("修改成功!");
                }
                else
                {
                    this.MsgBox("修改失败,请稍后重试!");
                }
            }
            return(View(moRegisterUser));
        }
        public async Task <IActionResult> Register([Bind("UserName,UserPwd,ComfirmPwd")] MoRegisterUser loginUser)
        {
            if (ModelState.IsValid)
            {
                #region 验证
                if (_context.ToUserInfo.Any(b => b.UserName.ToUpper() == loginUser.UserName.Trim().ToUpper()))
                {
                    this.MsgBox("已经存在相同的账号!");
                    return(View(loginUser));
                }
                #endregion

                #region 入库

                ToUserInfo userInfo = new ToUserInfo();

                userInfo.UserName   = loginUser.UserName.Trim();
                userInfo.UserPwd    = PublicClass._Md5(loginUser.UserPwd.Trim());
                userInfo.NickName   = userInfo.UserName;
                userInfo.Status     = (int)EnumHelper.EmUserStatus.启用;
                userInfo.CreateTime = DateTime.Now;
                userInfo.LevelNum   = (int)EmLevelNum.注册;

                userInfo.Ips       = this.GetUserIp();
                userInfo.HeadPhoto = "/images/ailiutu_user.png";
                userInfo.Sex       = false;

                _context.Add(userInfo);
                var result = await _context.SaveChangesAsync();

                if (result > 0)
                {
                    var moUserInfo = new MoUserInfo
                    {
                        Id       = userInfo.Id,
                        UserName = userInfo.UserName,
                        NickName = userInfo.NickName,
                        Addr     = userInfo.Addr,
                        Birthday = userInfo.Birthday,

                        Blog       = userInfo.Blog,
                        CreateTime = userInfo.CreateTime,
                        Email      = userInfo.Email,
                        HeadPhoto  = userInfo.HeadPhoto,
                        Introduce  = userInfo.Introduce,

                        Ips      = userInfo.Ips,
                        LevelNum = userInfo.LevelNum,
                        Sex      = userInfo.Sex,
                        Tel      = userInfo.Tel,
                        Status   = userInfo.Status,

                        LoginTime = DateTime.Now
                    };
                    HttpContext.Session.Set <MoUserInfo>(HttpContext.Session.SessionKey(), moUserInfo);

                    if (!string.IsNullOrWhiteSpace(moUserInfo.Ips))
                    {
                        _context.ToUserLog.Add(new ToUserLog
                        {
                            CodeId     = (int)EmLogCode.登录,
                            CreateTime = DateTime.Now,
                            Des        = $"IP:{moUserInfo.Ips},登录时间:{moUserInfo.LoginTime.ToString("yyyy-MM-dd HH:mm")}",
                            UserId     = userInfo.Id
                        });
                    }

                    _context.ToUserLog.Add(new ToUserLog
                    {
                        CodeId     = (int)EmLogCode.积分,
                        CreateTime = DateTime.Now,
                        Des        = $"【注册】  +{(int)EmLevelNum.注册}",
                        UserId     = userInfo.Id
                    });
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(HomeController.Index), "home"));
                }
                #endregion

                this.MsgBox("注册失败,请稍后重试。");
                return(View(loginUser));
            }
            return(View(loginUser));
        }