/// <summary> /// Changes pass from reset key /// </summary> /// <param name="idUser"></param> /// <param name="newPass"></param> /// <param name="passResetToken"></param> /// <returns></returns> public static async Task <ChangePasswordFromResetKeyOutput> ChangePasswordFromResetKeyAsync(MapHiveIdentityUser idUser, string newPass, string passResetToken) { var output = new ChangePasswordFromResetKeyOutput(); try { var userManager = MapHive.Core.Identity.UserManagerUtils.GetUserManager(); if (idUser != null) { if (await userManager.CheckPasswordAsync(idUser, newPass)) { output.FailureReason = "new_pass_same_as_old_pass"; output.Success = false; } else { await userManager.ResetPasswordAsync(idUser, passResetToken, newPass); output.Success = true; } } } catch (Exception ex) { output.FailureReason = "unknown_error"; } return(output); }
public static async Task <ChangePasswordFromResetKeyOutput> ChangePasswordFromResetKeyAsync <TAccount>( UserAccountService <TAccount> userAccountService, string newPass, string verificationKey) where TAccount : RelationalUserAccount { var output = new ChangePasswordFromResetKeyOutput(); try { output.Success = userAccountService.ChangePasswordFromResetKey(verificationKey, newPass); } catch (Exception ex) { if (ex.Message == "The new password must be different from the old password.") { output.FailureReason = "new_pass_same_as_old_pass"; } } return(output); }