public async Task <IActionResult> Login(MoLoginUser loginUser) { if (ModelState.IsValid == false || loginUser == null) { this.MsgBox("验证失败,请重试!"); return(View()); } User user; user = await _uf.UserRepository.GetUser(loginUser.UserName, loginUser.UserPwd); if (user == null) { this.MsgBox("账号或密码错误!"); return(View(typeof(MoLoginUser), loginUser)); } else if (user.UserStatus == UserStatus.未登录) { this.MsgBox("该账号已被禁用,或许你可以尝试重新注册一个账号!"); return(View()); } user.UserStatus = (int)UserStatus.启用; _uf.UserRepository.Update(user); var userToRole = _uf.UserToRoleRepository.GetAll(x => x.UserId == user.Id); await _uf.SaveChangesAsync(); var userInfo = new MoUserInfo { Id = user.Id, UserName = user.UserName, Email = user.Email, HeadPhoto = user.HeadPhoto, UserStatus = (int)user.UserStatus, Roles = userToRole.Any(x => x.Role.RoleName.Equals(RoleType.SuperAdmin.ToString(), StringComparison.OrdinalIgnoreCase)) ? RoleType.SuperAdmin.ToString() : userToRole.Any(x => x.Role.RoleName.Equals(RoleType.Admin.ToString(), StringComparison.OrdinalIgnoreCase)) ? RoleType.Admin.ToString() : RoleType.User.ToString() }; HttpContext.AddUserInfo(userInfo); if (String.IsNullOrWhiteSpace(loginUser.ReturnUrl)) { return(Redirect("http://localhost:17758/home/index")); } else { return(Redirect(loginUser.ReturnUrl)); } }
public async Task <IActionResult> Login([Bind("UserName,UserPwd,ReturnUrl")] MoLoginUser loginUser) { if (ModelState.IsValid) { #region 验证 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)EnumHelper.EmUserStatus.禁用) { this.MsgBox("该账号已被禁用,或许你可以尝试重新注册一个账号!"); return(View(loginUser)); } #endregion #region 更新登录信息 userInfo.Ips = this.GetUserIp(); userInfo.LoginTime = DateTime.Now; userInfo.LevelNum += (int)EmLevelNum.登录; //记录session 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 = Convert.ToDateTime(userInfo.LoginTime) }; 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(); if (string.IsNullOrWhiteSpace(loginUser.ReturnUrl)) { return(RedirectToAction(nameof(HomeController.Index), "Home")); } else { return(Redirect(loginUser.ReturnUrl)); } #endregion } return(View(loginUser)); }