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
             }
         };
     }));
 }
Example #3
0
        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());
        }
Example #4
0
        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));
            }
        }
Example #6
0
        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));
        }