权限管理、用户权限系统、开源用户权限系统、信息化建设标准基础数据管理平台
代码改变世界

走出权限误区,控制数据表中的[字段权限][单元格权限],其实很简单就差给你捅破那层纸(高手免进)

  通用C#系统架构  阅读(4300)  评论(27编辑  收藏  举报

来博客园读文章的,也不是人人都是高手,也有一些初学者,此文主要面向入门者,对权限接触不深者提供参考。

我们习惯了在页面上有几个按钮,控制这几个按钮的权限,都做得都很熟练
例如有 btnAdd 添加按钮,btnEdit 编辑按钮,btnDelete 删除按钮,此
页面是学生基本信息管理页面 frmStudentManager。

那我们可以设置如下权限对应关系:
"AddStudent" 权限对应 -> "frmStudentManager.btnAdd" 按钮的可用属性
"EditStudent" 权限对应 -> "frmStudentManager.btnEdit" 按钮的可用属性
"DeleteStudent" 权限对应 -> "frmStudentManager.btnDelete" 按钮的可用属性
这个大家都很好理解了。

 

若学生这个表里有 RealName姓名、Code编号、Age年龄、Sex性别等字段,
用户能访问那些列也需要权限控制,大家就很容易糊涂了,其实也是很简单的
道理,只是我们没彻底想同问题的本质而已,其实

我们可以设置如下权限对应关系:
"ViewStudentRealName" 权限对应 -> 列表中 "RealName姓名 字段是否可见"
"ViewStudentCode" 权限对应 -> 列表中 "Code编号 字段是否可见"
"ViewStudentAge" 权限对应 -> 列表中 "Age年龄 字段是否可见"
"ViewStudentSex" 权限对应 -> 列表中 "Sex性别 字段是否可见"

只不过是多了几个权限,有些权限是对应按钮的可用属性、有些对应列的可见属性而已。

单元格的权限控制,也是以上同样的原理,可以举一反三,只是有相应的唯一权限对应每个单元格就可以了。

其实,难是不难,就差捅破那层纸而已,基本原理是一样的,只是换了个表现方式而已。
在过去的几年里经常遇到,这样的提问,今天心情好写个文章,给大家参考参考吧,日后可能派上用处。

至于说数据库的所有的表,所有的字段的自动控制等,那就是另一个范畴的问题了,
以上只是解决问题的核心思想,你稍微变通一下,就可以搞定了,
甚至对数据源的控制,干脆没权限的数据连读都不读出来,那也是可以按以上的思想解决的,那就要看你自己实现了。

 

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!


C# ASP.NET 通用权限设计、通用权限管理、通用权限组件、单点登录、集中式权限管理、统一授权体系、分级管理分级授权


微信扫一扫加好友



点击右上角即可分享
微信分享提示