public string CreateUser(string userEmail, string userFirstName, string userLastName) { if (IsUserExist(userEmail)) { throw new UserAlreadyExistException(userEmail); } var userModel = new UserModel { Email = userEmail, FirstName = userFirstName, LastName = userLastName, IsAdmin = false, IsActivated = false, // Here is our HASH for activating link Salt = Randomizer.GetString(16), // Empty password field is not good UserPassword = _cryptoProvider.CreateHashForPassword(Randomizer.GetString(16), _cryptoProvider.GetNewSalt()) }; using (IUnitOfWork unitOfWork = WorkFactory.GetUnitOfWork()) { unitOfWork.Users.Add(userModel); unitOfWork.SaveChanges(); int userId = unitOfWork.Users.Find(user => user.Email == userEmail).Id; _albumService.CreateSystemAlbums(userId); } return(userModel.Salt); }
public void PasswordShouldBeEqualWithEncryptedVersion() { // setup const string PASSWORD = "******"; // body string salt = cryptoProvider.GetNewSalt(); string encryptedVersion = cryptoProvider.CreateHashForPassword(PASSWORD, salt); // tear down bool isEqual = cryptoProvider.IsPasswordsEqual(PASSWORD, encryptedVersion, salt); isEqual.Should().Be(true); }