Advertisement
Guest User

Untitled

a guest
Oct 31st, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. public void ChangePassword(string username, string oldPassword, string newPassword)
  2. {
  3. var hashedOld = PasswordHelper.Encode(oldPassword);
  4. var user = db.Users.Where(u => u.Username == username && u.Password == hashedOld);
  5. if (user == null)
  6. {
  7. throw new UnauthorizedException();
  8. }
  9.  
  10. PasswordHelper.Validate(newPassword);
  11.  
  12. var hashedNew = PasswordHelper.Encode(newPassword);
  13. var duplicatePassword = user.PasswordHistory.FirstOrDefault(p => p.Value == hashedNew);
  14. if (duplicatePassword != null)
  15. {
  16. throw new InvalidPasswordException();
  17. }
  18.  
  19. if (user.PasswordHistory.Count >= 5)
  20. {
  21. user.PasswordHistory.Remove(user.PasswordHistory.OrderBy(p => p.Date).FirstOrDefault());
  22. }
  23.  
  24. user.PasswodHistory.Add(new PasswordEntry
  25. {
  26. Date = DateTimeOffset.UtcNow,
  27. Value = user.Password
  28. });
  29.  
  30. user.Password = hashedNew;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement