/// <summary> /// Reads the list of users from users.t and stores in the database. /// </summary> /// <param name="connection"></param> /// <param name="oldUserFile">users.t</param> private static void LoadUsersIntoDatabase(IDbConnection connection, string oldUserFile) { List <OldUser> users = new List <OldUser>(); string line = File.ReadAllText(oldUserFile); var tokens = line.Split(' ', StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < tokens.Length; i += 4) { OldUser user = new OldUser(); user.userid = Int32.Parse(tokens[i]); user.username = tokens[i + 3]; users.Add(user); } Log.Info($"Loaded {users.Count} users from file: {oldUserFile}"); int count = 0; foreach (OldUser user in users) { string password = RandomString(length: 8); var command = connection.CreateCommand(); command.CommandText = $@" INSERT OR IGNORE INTO Users (UserId, UserName, Password) VALUES ({user.userid}, @username, @password) "; SqliteParameter paramUserName = new SqliteParameter("@username", SqliteType.Text); paramUserName.Value = user.username; SqliteParameter paramPassword = new SqliteParameter("@password", SqliteType.Text); paramPassword.Value = password; command.Parameters.Add(paramUserName); command.Parameters.Add(paramPassword); int rows = command.ExecuteNonQuery(); if (rows != 1) { Log.Warn($"Could not create user {user.username}"); continue; } count++; } Log.Info($"Added {count} users to the database"); }
public IActionResult Login(OldUser user) { User userInDb = context.Users.FirstOrDefault(u => u.email == user.EmailO); if (!ModelState.IsValid) { return(View("Index")); } if (userInDb == null) { ModelState.AddModelError("EmailO", "Email not found!"); } else { var hasher = new PasswordHasher <OldUser>(); var result = hasher.VerifyHashedPassword(user, userInDb.password, user.PasswordO); if (result == 0) { ModelState.AddModelError("PassdwordO", "Incorrect Password!"); } } HttpContext.Session.SetInt32("UserId", userInDb.UserId); return(Redirect("main")); }