public void TestAddUser() { UserModel newUser = new UserModel(); newUser.Username = "******"; newUser.Password = "******"; newUser.ConfirmPassword = "******"; newUser.CurrentMoney = 9001; newUser.HighestMoney = 9001; newUser.IsOnline = true; newUser.Privilege = "duck"; newUser.IsTaken = false; newUser.LoginFail = false; //add salt that matches their formatting //TEST THIS TOMORROW newUser.Salt = "UBROKEIT"; UserSqlDal dal = new UserSqlDal(); bool confirm = dal.Register(newUser); Assert.AreEqual(true, confirm); List <UserModel> allUsers = new List <UserModel>(); using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM users ORDER BY username DESC;", conn); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { UserModel u = new UserModel(); u.Username = Convert.ToString(reader["username"]); u.Password = Convert.ToString(reader["password"]); u.CurrentMoney = Convert.ToInt32(reader["current_money"]); u.HighestMoney = Convert.ToInt32(reader["highest_money"]); u.Privilege = Convert.ToString(reader["privilege"]); u.IsOnline = Convert.ToBoolean(reader["is_online"]); u.Salt = Convert.ToString(reader["salt"]); allUsers.Add(u); } Assert.IsNotNull(allUsers); Assert.AreEqual(4, allUsers.Count); Assert.AreEqual("Boa", allUsers[3].Username); Assert.AreEqual("aaa", allUsers[3].Password); Assert.AreEqual(50000, allUsers[2].CurrentMoney); Assert.AreEqual("omg-hash", allUsers[1].Salt); } }
public ActionResult Register(UserModel user) { UserSqlDal dal = new UserSqlDal(); if (ModelState.IsValid) { var newUser = new UserModel { Username = user.Username, Password = user.Password, }; List <string> existingUsers = dal.GetAllUsernames(); foreach (string name in existingUsers) { if (name == user.Username) { user.IsTaken = true; return(View("Register", user)); } } var hashProvider = new HashProvider(); user.Password = hashProvider.HashPassword(user.Password); user.Salt = hashProvider.SaltValue; dal.Register(user); Session["user"] = user; Session["username"] = user.Username; user.IsTaken = false; return(RedirectToAction("LoggedInLanding", "Home")); } else { return(View("Register", user)); } }