Esempio n. 1
0
        public ActionResult SubmitRegisteredVisitors(RegisteredVisitorVM model)
        {
            // Return and raise ValidationErrorMessages if constraints not met
            if (!ModelState.IsValid)
            {
                return(View("Registration", model));
            }

            // If the data is usable create a new registered visitor
            ModelsUser.RegisteredVisitor rv = new ModelsUser.RegisteredVisitor();
            // The salt is a random integer stored as string
            string salt = rng.Next().ToString();

            rv.FirstName = model.FirstName;
            rv.LastName  = model.LastName;
            rv.Username  = model.UserName;
            // SHA256 hash algorithm used for hashing the password + salt
            // The password and salt are both stored in the same column
            // They are separated by the '\0' character
            rv.Password           = $"{Algorithm.GetStringSha256Hash(model.Password + salt)}\0{salt}";
            rv.Email              = model.Email;
            rv.City               = contextGlobal.Cities.Find(model.CityID);
            rv.City.Country       = contextGlobal.Country.Find(rv.City.Country.CountryID);
            rv.CityID             = rv.City.CityID;
            rv.VirtualPointsTotal = 0;
            rv.Guid               = Guid.NewGuid().ToString();
            rv.PhoneNumber        = model.PhoneNumber;

            contextGlobal.RegisteredVisitors.Add(rv);
            contextGlobal.SaveChanges();

            return(RedirectToAction("Login"));
        }
Esempio n. 2
0
        public ActionResult Registration()
        {
            RegisteredVisitorVM model = new RegisteredVisitorVM();

            return(View("Registration", model));
        }