public ActionResult DoResetPassword(AccountResetPasswordModel viewModel) { // Ensure we have a valid viewModel to work with if (ModelState.IsValid) { var user = _sysUserService.Queryable().FirstOrDefault(x => x.Id == viewModel.Id); if (user == null) { return(new JsonResult(new { success = false, message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "NonExistingAccount") })); } else if (user.ResetPasswordToken != viewModel.Token) { return(new JsonResult(new { success = false, message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "InvalidToken") })); } else { user.ResetPasswordDate = null; user.ResetPasswordToken = null; user.Password = viewModel.Password.ToBCrypt(); _sysUserService.Update(user); _unitOfWork.SaveChanges(); return(new JsonResult(new { success = true, message = $"{LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "PasswordResetSuccessfully")} " + $"{LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ClickHereToLogIn")}" })); } } return(new JsonResult(new { success = false, message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ErrorOccurs") })); }
public async Task <GenericResponseModel <AccountResetPasswordModel> > ResetPassword(Guid id) { return(await Task.Run(async() => { AccountResetPasswordModel details = new AccountResetPasswordModel(); try { ErrorCode = "800.94"; if (id == Guid.Empty) { ErrorCode = "800.941"; throw new Exception("Invalid reference parameter"); } Account account = await accountService.AccountResetPassword(id); string token = account.RoleId.ToString() + "-" + account.DateUpdated.Value.ToString("yyddMM") + "_" + Checker.NumberExtractor(account.Id.ToString()) + "-" + account.AccountInformationId.ToString(); string url = appConfigManager.AppSetting <string>("AdminResetPasswordURL", true, new AppConfigSettingsModel { Value = "https:\\\\localhost:9909\\Admin\\Token\\ForgotPassword?userAccess=", Group = "Admin" }); url += token; bool isSend = await accountService.AccountEmail(account, "XPay.World Reset Password", url); details = new AccountResetPasswordModel { Username = account.Username, IsSend = isSend, IsChange = true, Message = "Success" }; } catch (Exception ex) { string message = ex.Message + (!string.IsNullOrEmpty(ex.InnerException.Message) && ex.Message != ex.InnerException.Message ? " Reason : " + ex.InnerException.Message : string.Empty); ErrorDetails.Add(message); ErrorMessage = message; MethodBase methodBase = MethodBase.GetCurrentMethod(); StackTrace trace = new StackTrace(ex, true); string sourceFile = trace.GetFrame(0).GetFileName(); await ErrorLogs.Write(new ErrorLogsModel { Application = Assembly.GetExecutingAssembly().GetName().Name, Controller = GetType().Name, CurrentAction = methodBase.Name.Split('>')[0].TrimStart('<'), ErrorCode = ErrorCode, Message = message, SourceFile = sourceFile, LineNumber = trace.GetFrame(0).GetFileLineNumber(), StackTrace = ex.ToString(), Method = methodBase.Name.Split('>')[0].TrimStart('<') }, ex); details = new AccountResetPasswordModel { IsSend = false, Message = message, IsChange = false, Username = string.Empty }; } return new GenericResponseModel <AccountResetPasswordModel>() { Code = string.IsNullOrEmpty(ErrorMessage) ? Utilities.Enums.CodeStatus.Success : Utilities.Enums.CodeStatus.Error, CodeStatus = string.IsNullOrEmpty(ErrorMessage) ? Utilities.Enums.CodeStatus.Success.ToString() : Utilities.Enums.CodeStatus.Error.ToString(), ReferenceObject = string.IsNullOrEmpty(ErrorMessage) ? details : null, ErrorMessage = string.IsNullOrEmpty(ErrorMessage) ? null : new ErrorMessage { Details = ErrorDetails, ErrNumber = ErrorCode, Message = ErrorMessage } }; })); }
public async Task <IHttpActionResult> ResetPassword([FromBody] AccountResetPasswordModel model) { var user = await _userManager.FindByEmailAsync(model.Email); if (user == null) { return(BadRequest()); } var result = await _userManager.ResetPasswordAsync(user.Id, WebUtility.UrlDecode(model.Code), model.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); }
public async Task <ActionResult> ResetPassword(AccountResetPasswordModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } AppUser user = UserManager.FindById(viewModel.UserId); if (user == null) { return(RedirectToAction("Register", "Account")); } var result = await UserManager.ResetPasswordAsync(viewModel.UserId, viewModel.Code, viewModel.Password); if (result.Succeeded) { return(RedirectToLocal()); } AddErrors(result); return(View(viewModel)); }
public ActionResult ResetPassword(int id, string token) { var viewmodel = new AccountResetPasswordModel(); var user = _sysUserService.Queryable().FirstOrDefault(x => x.Id == id); if (user == null) { viewmodel.Status = EnumAccountStatus.REQUEST_NOT_EXIST; viewmodel.Message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "NonExistingAccount"); return(View(viewmodel)); } else if (user.ResetPasswordDate == null) { viewmodel.Status = EnumAccountStatus.REQUEST_NOT_EXIST; viewmodel.Message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "RequestNotExist"); return(View(viewmodel)); } else if (user.ResetPasswordDate.Value.AddDays(int.Parse(_settingService.Queryable().FirstOrDefault(x => x.Name == CPLConstant.ResetPasswordExpiredInDays).Value)) > DateTime.Now) { if (user.ResetPasswordToken == token) { viewmodel.Id = id; viewmodel.Token = token; return(View(viewmodel)); } else { viewmodel.Status = EnumAccountStatus.INVALID_TOKEN; viewmodel.Message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "InvalidToken"); return(View(viewmodel)); } } else { viewmodel.Status = EnumAccountStatus.EXPIRED; viewmodel.Message = $"{LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ExpiredResetPasswordToken")} {LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ClickHereToAskResetPassword")} "; return(View(viewmodel)); } }
public ActionResult ResetPassword(string userId, string code, string Nt) { //链接过期 double timeInt = Convert.ToDouble(Nt); if (timeInt + 3 * 3600 <= TimeHelper.ConvertDateTimeInt(DateTime.UtcNow) || timeInt > TimeHelper.ConvertDateTimeInt(DateTime.UtcNow) || timeInt == 0) { return(RedirectToAction("Error404", "Account", new { ErrorMessage = "Link Has Expired" })); } EnsureLoggedOut(); //HttpContext.User = new GenericPrincipal(new GenericIdentity(string.Empty), null); if (userId == null || code == null) { return(RedirectToLocal()); } AccountResetPasswordModel mode = new AccountResetPasswordModel() { Code = code, UserId = userId }; AppUser user = UserManager.FindById(userId); ViewBag.UserInfo = user.Email + " [ " + user.PayRollUser + " ]"; return(View(mode)); }