管理员专属页面?

Administrator exclusive page?

我目前正在制作一个 windows 表单登录系统,我已经弄清楚如何设置一个通用的每个人都可以看到主页的系统,但对于管理员来说,我希望它打开一个新表单(form3) 将包含客户订单。 我需要它从登录 Button.Click 打开,就像打开 form2 以显示一般用户的商店页面一样。我的 table 中也没有用于用户角色的列。 我已经尝试过 if else 语句和 运行 来解决布尔问题,不排除字符串等

    using System;
    using System.Data;
    using System.Windows.Forms;
    using MySql.Data;
    using MySql.Data.MySqlClient;

    namespace Aliena_Store
    {


public partial class Form1 : Form
{
    //string ConnectionState = "";
    public Form1()
    {
        InitializeComponent();

    }

    MySqlConnection connection = new MySqlConnection("server=localhost;user=root;database=Aliena_Store;port=3306;password=Blackie");
    MySqlDataAdapter adapter;

    DataTable table = new DataTable();

    private void UsernameLogin_TextChanged(object sender, EventArgs e)
    {

    }

    private void PasswordLogin_TextChanged(object sender, EventArgs e)
    {

    }

    private void LoginButton_Click(object sender, EventArgs e)
    {
        adapter = new MySqlDataAdapter("SELECT `username`, `password` FROM `User_Details` WHERE `username` = '" + UsernameLogin.Text + "' AND `password` = '" + PasswordLogin.Text + "'", connection);

        adapter.Fill(table);
        var usernameSaved = UsernameLogin.Text;
        var passwordSaved = PasswordLogin.Text;
        Panel panel1 = new Panel();


        if (table.Rows.Count <= 0)
        {

         panel1.Height = 0;

         var result = MessageBox.Show("Username/Password Are Invalid or does not exist. Please sign up or retry your details");

        }

        else
        {
            panel1.Height = 0;
            this.Hide();
            if (table.Rows.Count >= 0)
            {

                Form nextForm;
                var result = MessageBox.Show("Login successful...Now logging in");
                this.Hide();
                object user = UsernameLogin.Text;
                object password = PasswordLogin.Text;
                if (user = "root" & password = "Pa$$w0rd")
                {
                    nextForm = new Form3();
                }
                else
                {
                    nextForm = new Form2();
                }
                nextForm.ShowDialog();
            }

            //Form2 f2 = new Form2();
            //f2.ShowDialog();

            //if login is successful needs to lead to another screen - if matches my account standard store screen or make root account just for the admin page
        }

        table.Clear();
    }


    private void EmailSignUp_TextChanged(object sender, EventArgs e)
    {

    }

    private void UsernameSignUp_TextChanged(object sender, EventArgs e)
    {

    }

    private void PasswordSignUp_TextChanged(object sender, EventArgs e)
    {

    }

    private void SignUpButton_Click(object sender, EventArgs e)
    {
        //connection.Open();
        string Query = "insert into User_Details (Email,Username,Password) values('" + this.EmailSignUp.Text + "', '" + this.UsernameSignUp.Text + "','" + this.PasswordSignUp.Text + "');";
        //string insertQuery = "INSERT INTO User_Details(Email,Username,Password)VALUES('" + EmailSignUp.Text + "','" + UsernameSignUp.Text + "'," + PasswordSignUp.Text + ")";
        MySqlCommand command = new MySqlCommand(Query,connection);

        try
        {
            if (command.ExecuteNonQuery() == 1)
            {
                MessageBox.Show("Data Inserted");
                connection.Close();
            }
            else
            {
                MessageBox.Show("Data Not Inserted");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            connection.Close();
        }

    }

}

}

几件事。

您的应用程序中需要一个用户对象来存储用户属性。该对象可以有一个 IsAdmin 属性,您稍后可以在您的代码中使用它。

或者,如果您不想创建和维护用户对象,您可以再次调用数据库以查看用户是否是管理员并将结果存储在您的方法本地。

然后根据用户是否是管理员实例化 Form3 而不是 Form2

Form nextForm;
var result = MessageBox.Show("Login successful...Now logging in");
this.Hide();
if (user.IsAdmin) {
    nextForm = new Form3();
} else {
    nextForm = new Form2();
}
nextForm.ShowDialog();

PS:希望您不要像看起来那样以明文形式在数据库中存储密码。