为了账号安全,请及时绑定邮箱和手机立即绑定

无角色登录

无角色登录

C#
四季花海 2022-01-15 16:54:27
我有一个收银系统,有两个角色,比如管理员和收银员。我需要更新我想要摆脱角色的应用程序,并且当用户输入用户名和密码时,要根据他们的角色加载表单。换句话说,我不希望用户从登录中选择角色。我正在使用 Visual Studio 15 和 Microsoft SQL server 14。下面的代码是登录按钮。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 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您可以根据凭据返回类型,然后检查返回的用户类型。


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

    }

在 select 语句中 * 也将返回 Type。因此,如果 DataTable 有任何行,则用户已通过身份验证。现在通过检查 DataTable 中的 Type 字段来检查该用户具有什么样的角色。


查看完整回答
反对 回复 2022-01-15
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您可以使用用户表中的附加列来检查角色


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# 代码:您可以执行隐藏功能并显示每个角色的必要控件。


如果您有多个表单,您可以将获取的角色保存在静态变量中并完成工作。


查看完整回答
反对 回复 2022-01-15
  • 2 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信