Администратор эксклюзивной страницы?

0

Я в настоящее время создаю систему входа в систему Windows, и я разработал, как настроить генерала, все могут видеть систему главной страницы, но для администратора я хочу, чтобы она открыла новую форму (form3), которая будет содержать заказы клиентов. Мне нужно открыть его из Login Button.Click, так же как form2 открывается, чтобы показать страницу магазина для генерализованных пользователей. У меня также нет столбца в моей таблице для пользовательских ролей. Я пробовал, если выполнял инструкции else, и сталкивался с проблемами с bools, кроме строк и т.д.

    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();
        }

    }

}

}

  • 0
    «Я попробовал несколько способов, но безуспешно и в настоящее время не могу его запустить и запустить» - это не описание проблемы. Что ты пробовал? В чем была проблема? Не ожидайте, что читатели будут экстрасенсами или тратят впустую свое время, предлагая вещи, которые вы уже опровергли.
Теги:
visual-studio
login-control

1 ответ

0
Лучший ответ

Несколько вещей.

Вам нужен объект User в вашем приложении, в котором хранятся свойства пользователя. Этот объект может иметь свойство IsAdmin, которое вы можете использовать позже в своем коде.

В качестве альтернативы, если вы не хотите создавать и поддерживать объект User, вы делаете другой вызов в базе данных, чтобы узнать, является ли пользователь администратором и сохраняет результат локально для вашего метода.

Затем вы 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: Надеюсь, вы не храните пароли в виде обычного текста в своей базе данных, как кажется.

  • 0
    Поскольку он хранит пароли, как его работа в университете, и учитель просто хочет увидеть определенную функциональность, он не суетится в этом текущем сценарии безопасности, поскольку вся информация генерируется случайным образом перед вводом и передается как автоматически вставляемые данные.
  • 0
    @ Даскки Хорошо, достаточно справедливо. Всегда разумно указать, хотя.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню