public override bool ResetPasswordWithToken(string token, string newPassword)
{
if (string.IsNullOrEmpty(newPassword))
{
throw CreateArgumentNullOrEmptyException("newPassword");
}
using (BlogUnitOfWork context = new BlogUnitOfWork(new ModelContextInit()))
{
dynamic user = context.Users.FirstOrDefault(Usr => Usr.PasswordVerificationToken == token && Usr.PasswordVerificationTokenExpirationDate > DateTime.Now);
if (user != null)
{
dynamic newhashedPassword = CodeFirstCrypto.HashPassword(newPassword);
if (newhashedPassword.Length > 128)
{
throw new ArgumentException("Password too long");
}
user.Password = newhashedPassword;
user.PasswordChangedDate = DateTime.UtcNow;
user.PasswordVerificationToken = null;
user.PasswordVerificationTokenExpirationDate = null;
context.SaveChanges();
return true;
}
else
{
return false;
}
}
}