Web如何实现简单的权限开发设计

经历这次项目研发,我对权限有着一些看法,将其写下来给大家一点参考。

这种设计与写法适用于角色权限。

(若要适用个人权限则通过用户ID建立权限表就OK)

表设计

用户表:用户ID,账号,密码,用户类型ID

模块表:模块ID,模块Url,模块Code

权限表:权限ID,用户类型ID,模块ID,是否启用。

1.将权限存储在cookie中(方便调用,减少对服务器的提交,一次登入储存所有权限无需二次提交服务器查询权限,减少高并发)

在登入时通过用户类型ID连表查询出该角色的所有权限信息,通过循环向cookie中添加权限信息,键为加密后的模块Code,值为权限表中加密后的是否启用。在加密一份整合拼接的权限信息储存在cookie中(防止用户篡改cookie)。(前后两种加密方法不同)

2.权限判断

在调用功能,进入页面时,通过方法特性自定义过滤器来过滤权限。

传递Code进入过滤器方法,将两份权限解密进行判断Cookie是否被篡改,在通过加密后的Code获取cookie中的信息是否有该权限。若有则让他接下来执行下面的方法,若无则页面重定向或者返回一个带有提示的Html。

代码示例:
在这里插入图片描述
总结:权限无非就是从数据库取数据来判断方法页面是否可以运行加载。写法不同的区别也就在于如何存储权限或者不存,然后取用权限,可以从每次都从数据库取出来,或从其他地方取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值