Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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));
            }
        }