Prechádzať zdrojové kódy

email autofill on resetpassword page

ganahrhr 3 rokov pred
rodič
commit
71f775dcf4

+ 2 - 11
Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs

@@ -17,12 +17,10 @@ namespace HyperCube.Areas.Identity.Pages.Account
     public class ForgotPasswordModel : PageModel
     {
         private readonly UserManager<IdentityUser> _userManager;
-        private readonly IEmailSender _emailSender;
 
-        public ForgotPasswordModel(UserManager<IdentityUser> userManager, IEmailSender emailSender)
+        public ForgotPasswordModel(UserManager<IdentityUser> userManager)
         {
             _userManager = userManager;
-            _emailSender = emailSender;
         }
 
         [BindProperty]
@@ -46,21 +44,14 @@ namespace HyperCube.Areas.Identity.Pages.Account
                     return RedirectToPage("./ForgotPasswordConfirmation");
                 }
 
-                // For more information on how to enable account confirmation and password reset please 
-                // visit https://go.microsoft.com/fwlink/?LinkID=532713
                 var code = await _userManager.GeneratePasswordResetTokenAsync(user);
                 code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                 var callbackUrl = Url.Page(
                     "/Account/ResetPassword",
                     pageHandler: null,
-                    values: new { area = "Identity", code },
+                    values: new { area = "Identity", code, Input.Email },
                     protocol: Request.Scheme);
 
-                //await _emailSender.SendEmailAsync(
-                //    Input.Email,
-                //    "Reset Password",
-                //    $"Please reset your password by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
-
                 EmailSender emailSender = new();
                 await emailSender.SendEmailAsync(Input.Email, "Сброс пароля",
                     $"Если вы забыли пароль от своей учетной записи, можно сбросить его по <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>ссылке</a>.");

+ 5 - 1
Areas/Identity/Pages/Account/ResetPassword.cshtml.cs

@@ -44,7 +44,7 @@ namespace HyperCube.Areas.Identity.Pages.Account
             public string Code { get; set; }
         }
 
-        public IActionResult OnGet(string code = null)
+        public IActionResult OnGet(string code = null, string email = null)
         {
             if (code == null)
             {
@@ -56,6 +56,10 @@ namespace HyperCube.Areas.Identity.Pages.Account
                 {
                     Code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code))
                 };
+
+                if (email != null)
+                    Input.Email = email;
+
                 return Page();
             }
         }