『7x24小时有问必答』
核心思路:用户 + 角色 + 权限 三层架构,贴合工控场景(操作员 / 工程师 / 管理员),可直接集成到 WinForm/WPF 项目。

一、三层核心架构(必做)

工控场景最优解,易扩展、好维护
权限:绑定具体操作(如参数修改、程序下载、报警清除、配方管理)
角色:预设 3 类(适配工控),批量分配权限
操作员:仅监控、启停,无修改权
工程师:可参数修改、配方编辑,无系统配置权
管理员:全权限 + 用户管理
用户:绑定 1 个角色,登录验证后加载权限

二、关键落地步骤(4 步搞定)

1. 定义核心实体类(直接复制用)

1.png

2. 权限验证核心工具类(全局调用)

2.png

3. 工控场景 2 种权限控制(项目必用)

方式 1:控件显隐 / 禁用(最常用)

登录后自动控制按钮、菜单是否可用,贴合工控操作习惯
3.png

方式 2:功能方法拦截(防绕过控件操作)

关键操作(如写 PLC、改配方)加权限校验,避免用户通过快捷键 / 代码绕过控件
4.png

4. 数据存储(2 种方案适配工控)

轻量方案(单机上位机):用XML/Json文件存储用户、角色、权限,无需数据库
专业方案(多机联网):用SQLite/MySQL存储,支持多客户端同步权限
推荐单机上位机用 Json,读写简单:
5.png

三、工控场景优化要点(避坑)

密码加密:绝对不存明文,用MD5/SHA256加密,示例:
6.png
2.自动登出:工控机长时间无人操作,定时调用AuthManager.Logout(),避免权限泄露
3.日志记录:关键权限操作(如改参数、下程序)记录日志,方便追溯
4.角色不可删:操作员、管理员角色默认保留,仅可修改权限,避免误删导致无权限登录

四、快速集成步骤(直接落地)

复制上面的实体类 + AuthManager 工具类到项目
预设 3 个角色及对应权限,初始化用户列表
登录窗体调用AuthManager.Login()验证
主窗体加载时调用InitPermission()初始化控件权限
关键功能方法加HasPermission()校验
源码:https://download.csdn.net/download/kylezhao2019/92534011

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码