ASP.NET Identity reset password

前端 未结 10 1122
无人及你
无人及你 2020-12-02 05:09

How can I get the password of a user in the new ASP.NET Identity system? Or how can I reset without knowing the current one (user forgot password)?

10条回答
  •  无人及你
    2020-12-02 05:33

    Best way to Reset Password in Asp.Net Core Identity use for Web API.

    Note* : Error() and Result() are created for internal use. You can return you want.

            [HttpPost]
            [Route("reset-password")]
            public async Task ResetPassword(ResetPasswordModel model)
            {
                if (!ModelState.IsValid)
                    return BadRequest(ModelState);
                try
                {
                    if (model is null)
                        return Error("No data found!");
    
    
                    var user = await _userManager.FindByIdAsync(AppCommon.ToString(GetUserId()));
                    if (user == null)
                        return Error("No user found!");
    
                    Microsoft.AspNetCore.Identity.SignInResult checkOldPassword =
                        await _signInManager.PasswordSignInAsync(user.UserName, model.OldPassword, false, false);
    
                    if (!checkOldPassword.Succeeded)
                        return Error("Old password does not matched.");
    
                    string resetToken = await _userManager.GeneratePasswordResetTokenAsync(user);
                    if (string.IsNullOrEmpty(resetToken))
                        return Error("Error while generating reset token.");
    
                    var result = await _userManager.ResetPasswordAsync(user, resetToken, model.Password);
    
                    if (result.Succeeded)
                        return Result();
                    else
                        return Error();
                }
                catch (Exception ex)
                {
                    return Error(ex);
                }
            }
    

提交回复
热议问题