ASP.NET MVC: Implement Password Reset with ASP NET Identity
By Tan Lee Published on Mar 18, 2020 23.06K
This post shows you How to Implement Password Reset via email with ASP.NET Identity MVC 5 using C#, Entity Framework Code First
Opening AccountController, then change ForgotPassword and ResetPassword action as below
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// // POST: /Account/ForgotPassword [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { var user = await UserManager.FindByEmailAsync(model.Email); if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id))) { // Don't reveal that the user does not exist or is not confirmed return View( "ForgotPasswordConfirmation" ); } // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var callbackUrl = Url.Action( "ResetPassword" , "Account" , new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); await UserManager.SendEmailAsync(user.Id, "Reset Password" , "Please reset your password by clicking <a href=\"" + callbackUrl + "\">here</a>" ); return RedirectToAction( "ForgotPasswordConfirmation" , "Account" ); } // If we got this far, something failed, redisplay form return View(model); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// // POST: /Account/ResetPassword [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model) { if (!ModelState.IsValid) { return View(model); } var user = await UserManager.FindByEmailAsync(model.Email); if (user == null ) { // Don't reveal that the user does not exist return RedirectToAction( "ResetPasswordConfirmation" , "Account" ); } var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password); if (result.Succeeded) { return RedirectToAction( "ResetPasswordConfirmation" , "Account" ); } AddErrors(result); return View(); } |
As you can see, We only need to uncomment the default code available.
VIDEO TUTORIAL
- ASP.NET MVC Responsive Templates Free Download
- How to upload file in ASP.NET MVC
- How to Create Contact Form Flat Responsive in ASP.NET MVC
- How to check if HttpPostedFileBase is an image
- How to upload Multiple File in ASP.NET MVC
- ASP.NET MVC: Getting Started
- ASP.NET MVC: Create Custom Routes
- ASP.NET MVC: Create Login Form
Categories
Popular Posts
11 Things You Didn't Know About Cloudflare
Dec 19, 2024
AdminKit Bootstrap 5 HTML5 UI Kits Template
Nov 17, 2024
RuangAdmin Template
Nov 13, 2024
Spica Admin Dashboard Template
Nov 18, 2024