利用数据库实现软件刷卡登录与三级权限

演示Demo

用户管理界面

利用数据库实现软件刷卡登录与三级权限_第1张图片

一,什么是三级权限

三级权限通常指在权限管理系统中,用户或角色被授予的中等级别访问权限。具体含义因系统或组织而异,但一般具备以下特点:

1. 访问范围

  • 读取权限:可查看大部分数据和文件。

  • 部分写入权限:能修改或添加部分数据,但受限。

  • 受限执行权限:可执行某些操作或命令,但受限制。

2. 适用场景

  • 中层管理人员:需要查看和部分修改数据,但无需最高权限。

  • 技术支持人员:需执行特定操作,但不应访问所有功能。

  • 普通用户:在特定系统或应用中,普通用户可能拥有三级权限。

3. 权限管理

  • 角色分配:通过角色或组分配权限,简化管理。

  • 权限继承:可能继承上级角色的部分权限。

  • 审计与监控:三级权限的操作通常会被记录和监控。

4. 安全性

  • 最小权限原则:仅授予完成工作所需的最低权限。

  • 定期审查:定期检查权限分配,确保符合安全要求。

5. 示例

  • 文件系统:可读取和修改部分文件,但不能删除或更改权限。

  • 数据库:可查询和更新部分表,但不能修改结构或删除表。

  • 应用程序:可使用大部分功能,但无法更改系统设置或用户权限。

二,准备工作

1,数据库查看器

利用数据库实现软件刷卡登录与三级权限_第2张图片

可以在码云下载

利用数据库实现软件刷卡登录与三级权限_第3张图片

2.添加引用

System.Data.SQLite

方式一,下在Dll至本地

方式二,NuGet包管理器

3,硬件刷卡器

三,代码实现

主程序

namespace Demo
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();

            Program.my_Database = new Database();
            Program.my_Database.Connect();

            tbxTest.Enabled = false;
            uiButton2.Enabled = false;
        }
        private void AdministratorsLoad_Click(object sender, EventArgs e)
        {
            FormUserManage usermanage = new FormUserManage();
            usermanage.ShowDialog();
        }

        private void LoadTimer_Tick(object sender, EventArgs e)
        {
            //FiveMintimer.Start();
            if (this.textBoxLoad.TextLength <= 8)
            {
                this.textBoxLoad.Text = "";
            }
        }

        private void FiveMintimer_Tick(object sender, EventArgs e)
        {
            this.FiveMintimer.Enabled = false;
            tbxTest.Enabled = false;
            this.textBoxLoad.Text = "";
            uiButton2.Enabled = false;
            showWorkMsg(listView1,   "退出登录", Color.Blue);
           
        }

        private void textBoxLoad_KeyDown(object sender, KeyEventArgs e)
        {
            this.LoadTimer.Enabled = true;
            if (e.KeyCode == Keys.Enter)
            {
                if (!string.IsNullOrEmpty(this.textBoxLoad.Text))
                {
                    string userName = Program.my_Database.pwFindUserName(this.textBoxLoad.Text);
                    string passWord = Program.my_Database.pwFindPassWord(this.textBoxLoad.Text);
                    string authority = Program.my_Database.pwFindAuthority(this.textBoxLoad.Text);
                    if (!string.IsNullOrEmpty(passWord))
                    {
                        if (authority == "生产员")
                        {
                            tbxTest.Enabled = false;
                            uiButton2.Enabled = false;
                            this.FiveMintimer.Enabled = true;

                        }
                        else if (authority == "工程师")
                        {
                            tbxTest.Enabled = false;
                            uiButton2.Enabled = false;
                            this.FiveMintimer.Enabled = true;
                            

                        }
                        else if (authority == "管理员")
                        {
                            tbxTest.Enabled = true;
                            uiButton2.Enabled = true;
                            this.FiveMintimer.Enabled = true;
                        }

                        
                        showWorkMsg(listView1, authority + " " + userName + " 已登录成功", Color.Blue);
                    }
                    else
                    {
                        MessageBox.Show("请录入正确的登录密码");
                    }

                }
                else
                {
                    MessageBox.Show("请刷卡录入登录密码");
                }
            }
        }

       
    }
}

用户管理界面

namespace Demo
{
    public partial class FormUserManage : Form
    {
        public FormUserManage()
        {
            InitializeComponent();
            getUserIdList();
        }
        public void getUserIdList()
        {
            listView1.Items.Clear();
            List userIdList = Program.my_Database.FindUserIdList();
            for (int i = 0; i < userIdList.Count(); i++)
            {
                ListViewItem item = new ListViewItem(new string[] { userIdList[i].UserName, "******", userIdList[i].Authority });
                this.listView1.Items.Add(item);
            }
        }
        private void buttonLoad_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(this.textBox1.Text) && !string.IsNullOrEmpty(this.textBox2.Text))
            {
                string exist1 = Program.my_Database.umFindUserName(this.textBox1.Text);
                string exist2 = Program.my_Database.umFindUserName(this.textBox2.Text);

                if (string.IsNullOrEmpty(exist1) && string.IsNullOrEmpty(exist2))
                {
                    Program.my_Database.AddUserIdInfo(textBox1.Text, textBox2.Text, this.comboBox1UserLoad.Text);
                    MessageBox.Show("已录入对应的用户和权限");
                    getUserIdList();
                }
                else
                {
                    MessageBox.Show("已存在对应的用户和权限");
                }
            }
            else
            {
                MessageBox.Show("请录入正确的用户名和密码");
            }
        }

        private void buttonDelte_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count > 0)
            {
                string userName = Program.my_Database.umFindUserName(listView1.SelectedItems[0].SubItems[0].Text);
                if (!string.IsNullOrEmpty(userName))
                {
                    DialogResult result = MessageBox.Show("确定删除用户  " + listView1.SelectedItems[0].SubItems[0].Text + "  吗?", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (result == DialogResult.Yes)
                    {
                        Program.my_Database.umDeleUserId(listView1.SelectedItems[0].SubItems[0].Text);
                        getUserIdList();
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
    }
}

三级权限在权限管理中提供适中的访问控制,平衡了操作灵活性与安全性,适用于需要一定权限但不需最高级别访问的用户或角色。

你可能感兴趣的:(插件,数据库,oracle,人机交互,计算机视觉,人工智能)