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")); }
public ActionResult Registration() { RegisteredVisitorVM model = new RegisteredVisitorVM(); return(View("Registration", model)); }