winform简易用户权限管理系统
2024-01-03 12:48:33
一、功能简介
1. 数据库可使用sqlite、mssql、mysql等
2.?管理员账号不管控,其余账号进行权限管控(左侧菜单,表单按钮)
二、操作界面

1. 管理员账号登陆后,左侧菜单栏自动添加 “菜单管理” ,菜单选择 Menu / Button


2. 角色分配权限


3. 用户绑定角色


4. 游客登陆后界面

三、数据库表



四、源码结构

五、权限控制代码
1. 菜单栏
![]()
public static void SetTreeView(TreeView treeView1, ImageList imageList1, string checkList, bool onlyMenu = false)
{
if (null == checkList) checkList = string.Empty;
treeView1.Nodes.Clear();
treeView1.ImageList = imageList1;
// 管理员特别权限
if (onlyMenu && LoginUser.Root)
{
TreeNode tn = new TreeNode();
tn.Text = "菜单管理";
treeView1.Nodes.Add(tn);
}
var list = FreeSqlHelper.GetMenu();
var parents = list.Where(o => o.ParentId == 0);
foreach (var item in parents)
{
var id = item.Id.ToString();
var nodeSign = GetSignTag(id);
//
TreeNode tn = new TreeNode();
tn.Text = item.MenuTag;
tn.Tag = id;
tn.ImageIndex = 0;
//
FillTree(tn, list, checkList, onlyMenu);
//
if (checkList.Contains(nodeSign))
{
tn.Checked = true;// 菜单设置用
}
//
if (onlyMenu)
{
// 添加左菜单栏时用(只包含菜单,且有权限时展示)
if (EnumMenuType.Menu == (EnumMenuType)item.MenuType)
{
if (string.IsNullOrEmpty(checkList))
{
treeView1.Nodes.Add(tn);
}
else
{
if (checkList.Contains(nodeSign))
{
treeView1.Nodes.Add(tn);
}
}
}
}
else
{
treeView1.Nodes.Add(tn);
}
}
if (treeView1.Nodes.Count > 0)//展开一级节点
{
treeView1.Nodes[0].Expand();
}
}
![]()
2. 表单按钮
![]()
ToolStripButton btnAssign = new ToolStripButton();
ToolStripTextBox txtQuery_Name = new ToolStripTextBox();
ToolStripTextBox txtQuery_Tag = new ToolStripTextBox();
public frmRole()
{
InitializeComponent();
SetDataGridView();
//
// 控制按钮
btnAssign = GetToolStripButton("btnAssign", "分配权限", Resources.btnAssign);
btnAssign.Click += new EventHandler(btnAssign_Click);
//
// 查询按钮
var label1 = new ToolStripLabel(); label1.Text = "角色名称"; toolStripQuery.Items.Insert(0, label1); toolStripQuery.Items.Insert(1, txtQuery_Name);
var label2 = new ToolStripLabel(); label2.Text = "角色标记"; toolStripQuery.Items.Insert(2, label2); toolStripQuery.Items.Insert(3, txtQuery_Tag);
}
public void InitUI()
{
if (!DataMgr.LoginUser.Root)
{
var roleMenu = DataMgr.LoginUser.RoleMenuNames.ToLower();
btnAdd.Visible = roleMenu.Contains("add_role") ? true : false;
btnEdit.Visible = roleMenu.Contains("edit_role") ? true : false;
btnDelete.Visible = roleMenu.Contains("delete_role") ? true : false;
btnAssign.Visible = roleMenu.Contains("assign_role") ? true : false;
}
//
base.InitData();
}
![]()
文章来源:https://blog.csdn.net/arno1988/article/details/135360210
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!