public void ResetPassword( string newPassword, IPasswordHashingService passwordHasher, PasswordResetToken resetToken, ISecureRandomStringGeneratorService saltGenerator) { if (PasswordResetTokens.Contains(resetToken) && resetToken.IsActive) { PasswordSalt = saltGenerator.GenerateSecureRandomString(); HashedPassword = passwordHasher.HashPassword(newPassword, PasswordSalt); } }
public void SendResetRequest( IPasswordResetTokenSenderService passwordResetTokenSender, IAlphanumericTokenGenerator tokenGenerator) { //disable previous reset tokens PasswordResetTokens?.ToList().ForEach(i => i.IsActive = false); var newResetToken = new PasswordResetToken() { ResetToken = tokenGenerator.GenerateAlphanumericToken(64), IsActive = true }; PasswordResetTokens.Add(newResetToken); passwordResetTokenSender.SendResetToken( Account.PrimaryEmail, newResetToken ); }