как заменить имя пользователя и пароль, которые хранятся в текстовом файле - PullRequest
0 голосов
/ 02 января 2019

Я делаю приложение для викторины, которое позволяет пользователям зарегистрироваться и войти в приложение.Детали для пользователей хранятся в текстовых файлах, и у меня есть форма, которая позволяет пользователю изменять свои имена пользователей.Я не знаю, как переопределить только имена пользователей в текстовом файле

Моя проблема в том, что я не знаю, как заменить только пароль и имя пользователя только для одного пользователя, потому что несколько пользователей могут иметь одинаковыепароль. Я уже пытался найти решение как в Stack Overflow, так и в Интернете, и я не нашел ничего похожего на мою проблему.мой текущий код заменяет пароль для каждого пользователя одним и тем же паролем, например, несколько пользователей в моем текстовом файле имеют пароль 123 для своего пароля.

    private void btnUpdateUserDetails_Click(object sender, EventArgs e)
    {
        string oldusername = txtBoxoldUsername.Text;
        string newusername = txtBoxnewUsername.Text;
        string oldpassword= txtBoxoldPassword.Text;
        string newpassword = txtBoxnewPassword.Text;
        string confirmedpassword = txtBoxConfirmedPassword.Text;

        if ((!string.IsNullOrEmpty(oldusername)) && (!string.IsNullOrEmpty(newusername))
           && (!string.IsNullOrEmpty(oldpassword)) && (!string.IsNullOrEmpty(newpassword)) && (!string.IsNullOrEmpty(confirmedpassword)))
        {
            if ((!oldusername.Contains("~")) || (!newusername.Contains("~")))
            {
                if (newpassword == confirmedpassword)
                {
                    if (File.Exists("users.txt"))
                    {
                        string[] users = File.ReadAllLines("users.txt");
                        bool userFound = false;

                        foreach (string user in users)
                        {
                            string[] splitDetails = user.Split('~');

                            string username = splitDetails[1];
                            string password = splitDetails[2];

                            if ((txtBoxoldUsername.Text == username) && (txtBoxoldPassword.Text == password))
                            {
                                string text = File.ReadAllText("users.txt");
                                text = text.Replace(oldusername, txtBoxnewUsername.Text).Replace(oldpassword, txtBoxnewPassword.Text);
                                File.WriteAllText("users.txt", text);

                                MessageBox.Show("Username and Password Updated Successfully!",
                               "Tas");

                                txtBoxoldUsername.Text = "";
                                txtBoxnewUsername.Text = "";
                                txtBoxoldPassword.Text = "";
                                txtBoxnewPassword.Text = "";
                                txtBoxConfirmedPassword.Text = "";

                                break;
                            }
                            else
                            {
                                MessageBox.Show("User details are incorrect",
                                "Incorrect details entered");
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("No users have been registered", "No users");
                    }

                }
                else
                {
                    MessageBox.Show("New Passwords don't match",
                                "Incorrect Details");
                }
            }
            else
            {
                MessageBox.Show("Username must not contain any special characters i.e. ~", "~ entered");
            }

        }
        else
        {
            MessageBox.Show("Please ensure all data is entered into the fields",
                "Details missing");
        }
    }

    private void btnBack_Click(object sender, EventArgs e)
    {
        this.Hide();
        var homeForm = new HomeForm();
        homeForm.Closed += (s, args) => this.Close();
        homeForm.Show();
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...