войти без роли c # - PullRequest
       1

войти без роли c #

0 голосов
/ 13 сентября 2018

Это мой первый вопрос в переполнении стека. У меня есть кассовая система с двумя ролями, такими как администратор и кассир. Мне нужно обновить приложение, где я хочу избавиться от роли, и когда пользователь вводит имя пользователя и пароль, форма загружается в соответствии с их ролями. Другими словами, я не хочу, чтобы пользователь выбирал роль в логине Я использую Visual Studio 15 и Microsoft SQL server 14.` Сильфонный код - кнопка для входа. Спасибо заранее.

Login Page

Form2 dash = new Form2();
    Form10 userdash = new Form10();
    DBConnection.DBC_Connection db = new DBConnection.DBC_Connection();
    DBConnection.Login lg = new DBConnection.Login();

    SqlDataAdapter sda = new SqlDataAdapter("select count(*) from Login where Type='" + comboBox1Type.Text + "' and Username='" + textBox1.Text + "'and Password='" + textBox2.Text + "'", db.creatconnection());
    DataTable dta = new DataTable();
    sda.Fill(dta);
    if (dta.Rows[0][0].ToString() == "1" && comboBox1Type.Text == "Admin")
    {
        this.Hide();
        dash.Show();
    }

    else
    {
        if (dta.Rows[0][0].ToString() == "1" && comboBox1Type.Text == "User")
        {
            this.Hide();
            userdash.Show();
        }

        else
        {
            MessageBox.Show("Invalid Login try checking Useraname Or Password !" , "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }

}`

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

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

    Form2 dash = new Form2();
    Form10 userdash = new Form10();
    DBConnection.DBC_Connection db = new DBConnection.DBC_Connection();
    DBConnection.Login lg = new DBConnection.Login();

    SqlDataAdapter sda = new SqlDataAdapter("select * from Login where Username='" + textBox1.Text + "'and Password='" + textBox2.Text + "'", db.creatconnection());
    DataTable dta = new DataTable();
    sda.Fill(dta);

    if(dta.Rows.Count > 0)
    {
        if(dta.Rows[0]["Type"].ToString() == "Admin")
        {
            this.Hide();
            dash.Show();
        }
        else
        {
            this.Hide();
            userdash.Show();
        }
    }
    else
    {
        MessageBox.Show("Invalid Login try checking Useraname Or Password !" , "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }

В операторе выбора * также будет возвращен тип.Так что если в DataTable есть какая-либо строка, то пользователь проходит аутентификацию.Теперь проверьте, какую роль играет этот пользователь, проверив поле Тип в DataTable.

0 голосов
/ 13 сентября 2018

Вы можете использовать дополнительный столбец в Таблице пользователей, чтобы проверить роли

Create table users (
username varchar2(50) not null,
password varchar2(50) not null,
role char not null, // this takes either 0 or 1 (admin , user)
constraints PK_USERS PRIMARY KEY (username)
)

Относительно вашего кода C # : вы можете сделать функцию скрытия и показать необходимые элементы управления для каждогоРоль.

Если у вас несколько форм, вы можете сохранить Роль в статической переменной и выполнить работу.

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