进销存系统用户登录实现:基础权限与操作控制

进销存系统用户登录实现:基础权限与操作控制

到目前为止,有一个问题一直被我们刻意忽略

谁在用这个系统?


一、为什么必须加登录?

如果没有登录:

  • 谁都能删数据
  • 谁都能做采购、销售
  • 无法追责

没有登录的系统,只能算 Demo


二、用户系统的最小实现目标

本篇不做复杂 RBAC,只实现:

  • 用户登录
  • 身份区分
  • 基本操作限制

三、用户表设计

CREATE TABLE sys_user (
    id INT PRIMARY KEY IDENTITY(1,1),
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(100) NOT NULL,
    role VARCHAR(20) NOT NULL
);

role 示例:

  • admin(管理员)
  • clerk(普通操作员)

四、登录界面逻辑

登录校验 SQL

private bool Login(string username, string password)
{
    string sql = @"
        SELECT role FROM sys_user
        WHERE username = @u AND password = @p";

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();

        SqlCommand cmd = new SqlCommand(sql, conn);
        cmd.Parameters.AddWithValue("@u", username);
        cmd.Parameters.AddWithValue("@p", password);

        object role = cmd.ExecuteScalar();
        if (role == null) return false;

        CurrentUser.Role = role.ToString();
        return true;
    }
}

五、登录成功后的系统行为

if (Login(txtUser.Text, txtPwd.Text))
{
    MainForm main = new MainForm();
    main.Show();
    this.Hide();
}
else
{
    MessageBox.Show("用户名或密码错误!");
}

六、基础权限控制示例

private void MainForm_Load(object sender, EventArgs e)
{
    if (CurrentUser.Role != "admin")
    {
        btnUserManage.Enabled = false;
    }
}

权限控制的本质是:控制操作入口


七、为什么这一步非常关键?

因为从这一刻开始:

  • 数据有“责任人”
  • 操作有“身份”
  • 系统开始具备“安全边界”
posted @ 2025-10-30 08:07  元始天尊123  阅读(3)  评论(0)    收藏  举报