核心思路:用户 + 角色 + 权限 三层架构,贴合工控场景(操作员 / 工程师 / 管理员),可直接集成到 WinForm/WPF 项目。
一、三层核心架构(必做)
工控场景最优解,易扩展、好维护
权限:绑定具体操作(如参数修改、程序下载、报警清除、配方管理)
角色:预设 3 类(适配工控),批量分配权限
操作员:仅监控、启停,无修改权
工程师:可参数修改、配方编辑,无系统配置权
管理员:全权限 + 用户管理
用户:绑定 1 个角色,登录验证后加载权限
二、关键落地步骤(4 步搞定) 1. 定义核心实体类(直接复制用)![]()
2. 权限验证核心工具类(全局调用)![]()
3. 工控场景 2 种权限控制(项目必用) ✅ 方式 1:控件显隐 / 禁用(最常用)
登录后自动控制按钮、菜单是否可用,贴合工控操作习惯
![]()
✅ 方式 2:功能方法拦截(防绕过控件操作)
关键操作(如写 PLC、改配方)加权限校验,避免用户通过快捷键 / 代码绕过控件
![]()
4. 数据存储(2 种方案适配工控)
轻量方案(单机上位机):用
XML/Json文件存储用户、角色、权限,无需数据库专业方案(多机联网):用
SQLite/MySQL存储,支持多客户端同步权限
✅ 推荐单机上位机用 Json,读写简单:
![]()
三、工控场景优化要点(避坑)
密码加密:绝对不存明文,用
MD5/SHA256加密,示例:
2.自动登出:工控机长时间无人操作,定时调用 AuthManager.Logout ,避免权限泄露
3.日志记录:关键权限操作(如改参数、下程序)记录日志,方便追溯
4.角色不可删:操作员、管理员角色默认保留,仅可修改权限,避免误删导致无权限登录
四、快速集成步骤(直接落地)
复制上面的 实体类 + AuthManager 工具类 到项目
预设 3 个角色及对应权限,初始化用户列表
登录窗体调用
AuthManager.Login验证主窗体加载时调用
InitPermission初始化控件权限关键功能方法加
HasPermission校验
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.