Esempio n. 1
0
        public async Task <JsonResult> Login([Bind("UserName,UserPwd,ReturnUrl")] PyLoginUser loginUser)
        {
            var data = new PyStudioPromptData();

            //if (ModelState.IsValid)
            //{
            var md5Pwd   = loginUser.UserPwd.Trim()._Md5();
            var userInfo = await _context.InfoUser.SingleOrDefaultAsync(b => b.UserName.Equals(loginUser.UserName, StringComparison.CurrentCultureIgnoreCase) && b.UserPwd.Equals(md5Pwd));

            if (userInfo == null)
            {
                data.IsOK = 2;
                data.Msg  = "用户名或密码错误!";
                return(Json(data));
            }
            else if (userInfo.UserStatus == (int)EmUserStatus.禁用)
            {
                data.IsOK = 2;
                data.Msg  = "该账号已被禁用,或许你可以重新注册一个账号或者联系管理员!";
                return(Json(data));
            }

            userInfo.UserIps       = this.GetUserIp();
            userInfo.UserLoginTime = DateTime.Now;

            var _pyUserInfo = new PyUserInfo
            {
                UserId         = userInfo.UserId,
                UserName       = userInfo.UserName,
                UserNickName   = userInfo.UserNickName,
                UserEmail      = userInfo.UserEmail,
                UserTel        = userInfo.UserTel,
                UserSex        = userInfo.UserSex,
                UserIntroduce  = userInfo.UserIntroduce,
                UserHeadPhoto  = userInfo.UserHeadPhoto,
                UserBirthday   = userInfo.UserBirthday,
                UserAddress    = userInfo.UserAddress,
                UserBlog       = userInfo.UserBlog,
                UserStatus     = userInfo.UserStatus,
                UserCreateTime = userInfo.UserCreateTime,
                UserLoginTime  = userInfo.UserLoginTime,
                UserIps        = userInfo.UserIps
            };

            HttpContext.Session.Set <PyUserInfo>(HttpContext.Session.SessionKey(), _pyUserInfo);

            _context.SysLogger.Add(new SysLogger
            {
                LoggerUser        = _pyUserInfo.UserId,
                LoggerDescription = $"用户{_pyUserInfo.UserName}{EmLogStatus.登录} ",
                LoggerOperation   = (int)EmLogStatus.登录,
                LoggerCreateTime  = DateTime.Now,
                LoggerIps         = _pyUserInfo.UserIps
            });

            await _context.SaveChangesAsync();

            data.IsOK = 1;
            data.Msg  = "登录成功";
            //}
            //else
            //{
            //    data.IsOK = 0;
            //    data.Msg = "登录失败!";
            //}
            return(Json(data));
        }
        public async Task <IActionResult> Login([Bind("UserName,UserPwd,ReturnUrl")] PyLoginUser loginUser)
        {
            if (ModelState.IsValid)
            {
                #region Valid
                var md5Pwd   = PublicClass._Md5(loginUser.UserPwd.Trim());
                var userInfo = await _context.ToUserInfo.SingleOrDefaultAsync(b => b.UserName.Equals(loginUser.UserName, StringComparison.CurrentCultureIgnoreCase) && b.UserPwd.Equals(md5Pwd));

                if (userInfo == null)
                {
                    this.MsgBox("账号或密码错误!");
                    return(View(loginUser));
                }
                else if (userInfo.Status == (int)EmUserStatus.禁用)
                {
                    this.MsgBox("该账号已被禁用,或许你可以重新注册一个账号或者联系管理员!");
                    return(View(loginUser));
                }
                #endregion

                #region 更新登录信息
                userInfo.Ips       = this.GetUserIp();
                userInfo.LoginTime = DateTime.Now;
                userInfo.LevelNum += (int)EmLevelNum.登录;

                //记录Session
                var pyUserInfo = new PyUserInfo {
                    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 = Convert.ToDateTime(userInfo.LoginTime)
                };

                HttpContext.Session.Set <PyUserInfo>(HttpContext.Session.SessionKey(), pyUserInfo);

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

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

                if (string.IsNullOrWhiteSpace(loginUser.ReturnUrl))
                {
                    return(RedirectToAction(nameof(HomeController.Index), "Home"));
                }
                else
                {
                    return(Redirect(loginUser.ReturnUrl));
                }
                #endregion
            }
            return(View(loginUser));
        }