-1

我想确定用户在注册时是否单击 Admin 或 User 单选按钮。我想我应该将它附加到名称和密码所在的文本文件的行尾,但我该怎么做呢?以下是相关代码:

单选按钮检查

public bool radioButtons()
{
    string usertypebutton;
    if (!userButton.Checked && !adminButton.Checked)
    {
        MessageBox.Show("You must select an account type");
        return false;
    }
    else
    {
        if (userButton.Checked)
        {
            usertypebutton = "User";
        }
        else
        {
            usertypebutton = "Admin";
        }
        return true;

    }
}

用于注册的 Streamwriter:

public void mySW()
{
    string path = @"C:\Other\myFile.txt";
    string userName = userNameBox.Text;
    string password = passwordBox.Text;
    string usertype = usertypebutton;

    using (StreamWriter writer = new StreamWriter(path, true))
    {
        writer.WriteLine("Username: {0} Password: {1} Type: {3}" , userName, password, usertype);

        // No need to close nor dispose your StreamWriter.
        // You're inside a using statement for that!
    }

    MessageBox.Show("Thanks for registering! \n\nYou may now log in!", "Registration SuccessFul");
    Application.OpenForms[0].Show();
    this.Close();
}

在登录:

 private void logonButton_Click(object sender, EventArgs e)
{
    // Loads your users storage
    var users = File.ReadAllLines(@"C:\Other\myFile.txt");

    // Creates the line with username + password
    var usernamePassword = String.Format("Username: {0} Password: {1}", userNameBox.Text, passwordBox.Text);

    // Locates the user on your storage
    var userFound = users.SingleOrDefault(_u => _u.Equals(usernamePassword));

    if (userFound != null)
    {
        MessageBox.Show("Welcome back, " + userNameBox.Text);
    }
    else
    {
        MessageBox.Show("Sorry, you have entered incorrect details\n\nPlease try again");
        userNameBox.Text = "";
        passwordBox.Text = "";
    }
}

所以(我认为)本质上我想将值 usertypebutton 从单选按钮方法传递给 SW。我该怎么做,因为我已经传递了一个布尔值?

安东尼

4

2 回答 2

0

如果没有选中任何复选框,我会将返回类型更改为字符串并返回字符串“ERROR”。在 mySW() 中,我会在打开 StreamWriter 之前检查是否返回了“ERROR”,如果它确实退出了函数,那么什么都不做。

于 2013-09-30T20:11:49.397 回答
0

不要在任何地方编写未加密的纯文本密码。这是非常不安全的,如果您被黑客入侵,可能会给您带来很多麻烦。您确实需要先四处寻找您信任的密码加密策略。

至于您的实际问题,您已经有:

writer.WriteLine("Username: {0} Password: {1} Type: {3}" , userName, password, usertype);

只需将其更改为接收所选单选按钮的字符串值,您就可以写出 Admin 或 User。

于 2013-10-01T14:02:52.493 回答