コード例 #1
0
        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! &raquo;</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"));
        }
コード例 #2
0
        /// <summary>
        /// Auto reset password
        /// </summary>
        /// <returns></returns>
        public ActionResult ForgotPassword()
        {
            var model = new AccountForgotPasswordModel()
            {
                Input = new AccountForgotPasswordInputModel()
            };

            return(View(model));
        }
コード例 #3
0
        public ActionResult ForgotPassword()
        {
            // We do not want to use any existing identity information
            ClearSession();

            var viewModel = new AccountForgotPasswordModel();

            return(View(viewModel));
        }
コード例 #4
0
        public ActionResult ConfirmedEmail(string Email)
        {
            EnsureLoggedOut();
            AccountForgotPasswordModel mode = new AccountForgotPasswordModel()
            {
                Email = Email
            };

            return(View(mode));
        }
コード例 #5
0
 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
             }
         };
     }));
 }
コード例 #6
0
        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") }));
        }