public async Task <string> SignInAsync(LoginModel model) { BaseResult result = new BaseResult(); #region 判断验证码 if (!ValidateCaptchaCode(model.CaptchaCode)) { result.ResultCode = ResultCodeAddMsgKey.SignInCaptchaCodeErrorCode; result.ResultMsg = ResultCodeAddMsgKey.SignInCaptchaCodeErrorMsg; return(JsonHepler.ObjectToJSON(result)); } #endregion #region 判断错误次数 var ErrorTimes = HttpContext.Session.GetInt32(ManagerSignInErrorTimes); if (ErrorTimes == null) { HttpContext.Session.SetInt32(ManagerSignInErrorTimes, 1); ErrorTimes = 1; } else { HttpContext.Session.SetInt32(ManagerSignInErrorTimes, ErrorTimes.Value + 1); } if (ErrorTimes > MaxErrorTimes) { result.ResultCode = ResultCodeAddMsgKey.SignInErrorTimesOverTimesCode; result.ResultMsg = ResultCodeAddMsgKey.SignInErrorTimesOverTimesMsg; return(JsonHepler.ObjectToJSON(result)); } #endregion #region 再次属性判断 LoginModelValidation validation = new LoginModelValidation(); ValidationResult results = validation.Validate(model); if (!results.IsValid) { result.ResultCode = ResultCodeAddMsgKey.CommonModelStateInvalidCode; result.ResultMsg = results.ToString("||"); } #endregion model.Ip = HttpContext.GetClientUserIp(); var manager = _servie.SignIn(model); return(null); }
public IActionResult LoginIndex(LoginModel model) { #region 判断验证码 //if (!ValidateCaptchaCode(model.CaptchaCode)) //{ // AjaxData.Success = false; // AjaxData.Message = ResultCodeAddMsgKeys.SignInCaptchaCodeErrorMsg; // return Json(AjaxData); //} #endregion #region 属性判断 LoginModelValidation validation = new LoginModelValidation(); ValidationResult results = validation.Validate(model); if (!results.IsValid) { AjaxData.Success = false; AjaxData.Message = results.ToString("||"); return(Json(AjaxData)); } #endregion #region 数据库验证 string r = HttpContext.Session.GetString(R_KEY); r = r ?? ""; var result = _baseUserService.ValidateUser(model.Account, model.Password, r); AjaxData.Success = result.Success; AjaxData.Message = result.Message; if (result.Success) { _authenticationService.signIn(result.Token, result.User.Account); } return(Json(AjaxData)); #endregion }
public async Task <string> SignInAsync(LoginModel model) { BaseResult result = new BaseResult(); #region 判断验证码 if (!ValidateCaptchaCode(model.CaptchaCode)) { result.ResultCode = ResultCodeAddMsgKeys.SignInCaptchaCodeErrorCode; result.ResultMsg = ResultCodeAddMsgKeys.SignInCaptchaCodeErrorMsg; return(JsonHelper.ObjectToJSON(result)); } #endregion #region 判断错误次数 var ErrorTimes = HttpContext.Session.GetInt32(ManagerSignInErrorTimes); if (ErrorTimes == null) { HttpContext.Session.SetInt32(ManagerSignInErrorTimes, 1); ErrorTimes = 1; } else { HttpContext.Session.SetInt32(ManagerSignInErrorTimes, ErrorTimes.Value + 1); } if (ErrorTimes > MaxErrorTimes) { result.ResultCode = ResultCodeAddMsgKeys.SignInErrorTimesOverTimesCode; result.ResultMsg = ResultCodeAddMsgKeys.SignInErrorTimesOverTimesMsg; return(JsonHelper.ObjectToJSON(result)); } #endregion #region 再次属性判断 LoginModelValidation validation = new LoginModelValidation(); ValidationResult results = validation.Validate(model); if (!results.IsValid) { result.ResultCode = ResultCodeAddMsgKeys.CommonModelStateInvalidCode; result.ResultMsg = results.ToString("||"); } #endregion model.Ip = HttpContext.GetClientUserIp(); var manager = _service.SignIn(model); if (manager == null) { result.ResultCode = ResultCodeAddMsgKeys.SignInPasswordOrUserNameErrorCode; result.ResultMsg = ResultCodeAddMsgKeys.SignInPasswordOrUserNameErrorMsg; } else if (manager.IsLock) { result.ResultCode = ResultCodeAddMsgKeys.SignInUserLockedCode; result.ResultMsg = ResultCodeAddMsgKeys.SignInUserLockedMsg; } else { var claims = new List <Claim> { new Claim(ClaimTypes.Name, manager.UserName), new Claim(ClaimTypes.MobilePhone, manager.Mobile), new Claim(ClaimTypes.Role, manager.RoleId.ToString()), new Claim("Id", manager.Id.ToString()), new Claim("NickName", manager.NickName), new Claim("Email", manager.Email), new Claim("LoginCount", manager.LoginCount.ToString()), new Claim("LoginLastIp", manager.LoginLastIp), new Claim("LoginLastTime", manager.LoginLastTime?.ToString("yyyy-MM-dd HH:mm:ss")), }; var claimsIdentity = new ClaimsIdentity( claims, CookieAuthenticationDefaults.AuthenticationScheme); await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity)); } return(JsonHelper.ObjectToJSON(result)); }