public void Create(string email, string userName, string password) { if (string.IsNullOrEmpty(email)) { throw new ArgumentNullException(nameof(email)); } if (string.IsNullOrEmpty(userName)) { throw new ArgumentNullException(nameof(userName)); } var salt = CreateSalt(); var hashedPassword = Hash(password ?? string.Empty, salt); var entry = new AuthAccountEntry { Email = email, Username = userName, Password = hashedPassword, Salt = salt }; _dbContext.AuthAccountEntries.Add(entry); _dbContext.SaveChanges(); }
public PasswordCheckFailedException(AuthAccountEntry entry) : base($"User ({entry.Username}, {entry.Id}) tried to log in with an invalid password!") { }
public AccountLockedException(AuthAccountEntry entry) : base($"User ({entry.Username}, {entry.Id}) tried to log in, but he/she is locked.") { }
public bool CheckPassword(AuthAccountEntry entry, string password) { var expectedPasswordHash = Hash(password, entry.Salt); return(expectedPasswordHash == entry.Password); }