Я собираюсь сделать викторину для курсовой работы уровня и в этом опросе. У меня есть экран регистрации игрока, который содержит имя пользователя, пароль, номер значка игрока и дату и время и сохраняет его на текстовый файл.Экран входа в систему, использующий для петель и массивов
У меня есть экран входа в плеер, который должен принимать значения, помещенные в текстовые поля имени пользователя и пароля, превращать их в строки, создавать массив из текстового файла и затем проверять, найдено ли имя пользователя и соответствующий пароль. Если они обнаружены, викторина должна перейти к первому вопросу, и если они не будут найдены, будет отображаться метка с надписью «пользователь не найден».
Моя проблема в том, что до тех пор, пока в текстовом файле записана запись, викторина перейдет к первому вопросу. Кажется, я не могу заставить его работать правильно.
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = txtExistingUserName.Text.ToString();
string userPassword = txtExistingPassword.Text.ToString();
bool bUserFound = false;
lblUserNotFound.Visible = false;
string filePath = "../../TextFiles/txtPlayer.txt";
string[] fileLinesToRead = File.ReadAllLines(filePath);
for (int i = 0; i < fileLinesToRead.Count(); i = i + 7)
{
for (int y = i; y < i + 7; y++)
{
if (fileLinesToRead[y].Contains(userName))
{
if (fileLinesToRead[y].Contains(userPassword))
{
bUserFound = true;
break;
}
}
else
{
bUserFound = false;
}
}
}
if (bUserFound)
{
PlayerDetails.playerName = userName;
PlayerDetails.playerPassword = userPassword;
Random rndInt = new Random();
int random = rndInt.Next(1, 3);
switch (random)
{
case 1:
Form myNextScreen = new frmQuestion1();
myNextScreen.ShowDialog();
//this.Close();
break;
case 2:
Form myNextScreenAlt = new frmQuestion1Alt();
myNextScreenAlt.ShowDialog();
//this.Close();
break;
}
}
else
{
lblUserNotFound.Visible = true;
}
}
Что строка в текстовом файле выглядеть? Вы не должны использовать string.contains для сравнения пароля. Кроме того, вы должны загрузить текстовый файл в словарь при загрузке приложения, а затем получить пароль из словаря и использовать == или string.compare в зависимости от того, как вы обрабатываете типы, чувствительность к регистру и т. Д. – ATerry
im довольно новый на C#, поэтому можно вы объясните, что вы имеете в виду. Это для школы, поэтому нам просто вручили книгу и сказали использовать ее, чтобы сделать викторину, но книга ужасна. Строка в текстовом файле выглядит так: Test, 123,3,25/01/2017 11:15:05 –
Очевидно, что вы просто студент, но обратите внимание, что хранение паролей в текстовом формате * - ужасная идея *. Каждый раз вы хотите хранить криптографически безопасный соленый хеш. – BradleyDotNET