public async Task <ActionResult> ForgotPassword(AccountForgotPasswordModel viewModel) { AppUser user = UserManager.FindByEmail(viewModel.Email); if (user == null) { ModelState.AddModelError("", "The user is not found."); return(View(viewModel)); } ; if (!await UserManager.IsEmailConfirmedAsync(user.Id)) { return(RedirectToAction("ConfirmedEmail", "Account", new { Email = user.Email })); } string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); //code = HttpUtility.UrlEncode(code); var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code, Nt = TimeHelper.ConvertDateTimeInt(DateTime.UtcNow) }, protocol: Request.Url.Scheme); string EmailBody = "Please resetting your password by clicking."; string EmailLink = "Please resetting your password by clicking.<a href=\"" + callbackUrl + "\">Click it! »</a>"; string strbody = ReplaceText(EmailBody, EmailLink); await UserManager.SendEmailAsync(user.Id, "Password Reset – Livell PayRoll (" + user.Email + ")", strbody); //await UserManager.SendEmailAsync( // user.Id, // "Password Reset – Livell PayRoll (" + user.Email + ")", // "Dear LivellPayRoll Customer:<br><br> Please resetting your password by clicking <a href=\"" + callbackUrl + "\">link</a><br><br> —The LivellPayRoll Team"); ViewBag.ReceiveEmail = user.Email; return(View("WaitEmail")); }
/// <summary> /// Auto reset password /// </summary> /// <returns></returns> public ActionResult ForgotPassword() { var model = new AccountForgotPasswordModel() { Input = new AccountForgotPasswordInputModel() }; return(View(model)); }
public ActionResult ForgotPassword() { // We do not want to use any existing identity information ClearSession(); var viewModel = new AccountForgotPasswordModel(); return(View(viewModel)); }
public ActionResult ConfirmedEmail(string Email) { EnsureLoggedOut(); AccountForgotPasswordModel mode = new AccountForgotPasswordModel() { Email = Email }; return(View(mode)); }
public async Task <GenericResponseModel <AccountForgotPasswordModel> > ForgotPassword([FromUri] string userAccess) { return(await Task.Run(async() => { var details = new AccountForgotPasswordModel(); try { ErrorCode = "800.92"; var account = await accountService.UpdateForgottenAccount(userAccess); string token = account.RoleId.ToString() + "-" + account.DateUpdated.Value.ToString("yyddMM") + "_" + Checker.NumberExtractor(account.Id.ToString()) + "-" + account.AccountInformationId.ToString(); string url = appConfigManager.AppSetting <string>("AdminForgotPasswordURL", true, new AppConfigSettingsModel { Value = "https:\\\\localhost:9909\\Admin\\Token\\ForgotPassword?userAccess=", Group = "Admin" }); url += token; bool isSend = await accountService.AccountEmail(account, "XPay.World Forgot Password", url); details = new AccountForgotPasswordModel { Username = account.Username, IsSend = isSend, Token = token, 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 AccountForgotPasswordModel { Username = string.Empty, IsSend = false, Token = string.Empty, Message = message }; } return new GenericResponseModel <AccountForgotPasswordModel>() { 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 ActionResult DoForgotPassword(AccountForgotPasswordModel viewModel) { // Ensure we have a valid viewModel to work with if (ModelState.IsValid) { var user = _sysUserService.Queryable().FirstOrDefault(x => x.Email == viewModel.Email && x.IsDeleted == false); if (user == null) { return(new JsonResult(new { success = false, message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "NonExistingAccount") })); } user.ResetPasswordDate = DateTime.Now; user.ResetPasswordToken = Guid.NewGuid().ToString(); _sysUserService.Update(user); _unitOfWork.SaveChanges(); var template = _templateService.Queryable().FirstOrDefault(x => x.Name == EnumTemplate.ForgotPassword.ToString()); var forgotPasswordEmailTemplateViewModel = Mapper.Map <ForgotPasswordEmailTemplateViewModel>(user); forgotPasswordEmailTemplateViewModel.ResetPasswordUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}{Url.Action("ResetPassword", "Authentication", new { token = forgotPasswordEmailTemplateViewModel.ResetPasswordToken, id = forgotPasswordEmailTemplateViewModel.Id })}"; forgotPasswordEmailTemplateViewModel.RootUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}"; // Populate language forgotPasswordEmailTemplateViewModel.ResetYourPasswordText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ResetYourPassword"); forgotPasswordEmailTemplateViewModel.HiText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Hi"); forgotPasswordEmailTemplateViewModel.ResetPasswordRequestText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ResetPasswordRequest"); forgotPasswordEmailTemplateViewModel.ButtonClickBelowText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ButtonClickBelow"); forgotPasswordEmailTemplateViewModel.NotWorkUrlText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "NotWorkUrl"); forgotPasswordEmailTemplateViewModel.NotYourRequestText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "NotYourRequest"); forgotPasswordEmailTemplateViewModel.CheersText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Cheers"); forgotPasswordEmailTemplateViewModel.ConnectWithUsText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ConnectWithUs"); forgotPasswordEmailTemplateViewModel.ContactInfoText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ContactInfo"); forgotPasswordEmailTemplateViewModel.EmailText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Email"); forgotPasswordEmailTemplateViewModel.WebsiteText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "Website"); forgotPasswordEmailTemplateViewModel.ExpiredEmail24hText = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ExpiredEmail24h"); template.Body = _viewRenderService.RenderToStringAsync("/Views/Authentication/_ForgotPasswordEmailTemplate.cshtml", forgotPasswordEmailTemplateViewModel).Result; EmailHelper.Send(Mapper.Map <TemplateViewModel>(template), user.Email); return(new JsonResult(new { success = true, message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ResetPasswordEmailSent") })); } return(new JsonResult(new { success = false, message = LangDetailHelper.Get(HttpContext.Session.GetInt32("LangId").Value, "ErrorOccurs") })); }