一个需要用户进行登录的网站,基本上都会设置用户权限,对不同的用户进行权限控制。例如:一个网站肯定会有一个管理员管理着普通的用户,普通的用户不可能对其他用户有着类似于增删改查等操作,这样网站都乱了……,一个网站做基本要做好逻辑结构,还要管理好所有用户的权限,不同种用户对应着不同的权限,让这些用户有一个层级的概念。

在网上搜索权限控制会接触到shiro,这个可以说是一个安全框架,用来做权限控制非常方便的,这个以后再看。做权限控制我最先想到的使用session来做,session对象,一个用户一次登录对应一个session,这样我们可以把用户的权限从数据库中查出来,保存在当前这个用户的session对象中,这样在打开每个网页的时候,首先判断当前用户权限是什么,属于什么等级,在页面上做出判断,哪些内容是可以显示给当前用户,哪些不可以显示,这样有些需要权限等级高的操作页面内容就可以选择显示给用户了。

在用户表中有一个字段用来记录着当前用户的权限(其实这里应该记录用户的权限列表,为什么?因为用户的权限总是有些交叉的,比如说设置一个普通用户对应的的权限可以进行的操作有修改登录密码,管理员对应的权限也可以对用户的密码进行修改,如果单一的设置普通用户的权限为1,管理员权限为5,我们在后台判断权限为5的用户可以修改密码,那普通用户的修改密码的操作就不能实现了,最好的方法就是每个用户对应一个权限列表,权限列表中对应着几种不同的权限编码,这样对于前面说的那种权限的交叉就可以很好的解决了)这里为了实现简单的用户权限控制,并没有采用权限列表这种方式,只是简单的设置某个权限为几(一个int类型的值)。

说了这么多,我们有一个用户表,表中记录着用户的基本信息,还有一个字段用来记录用户的权限标号(一个int类型的值存储),从1-5权限从小到大对应,一个登录页面,一个主页(登录成功跳转到主页),在用户输入用户名和密码的时候,会去数据库中查找有无此用户名和密码对应的用户,返回回来,我们在执行完这个操作的时候,再定义一个方法:在用户表中把当前登录用户的权限标号查出来,放到session中即可。

下面是一个ssm三个框架整合的项目,在mybatis的xml的配置文件中分别定义了登录查询的sql语句和查询权限的sql语句

在controller中写入逻辑代码,登录查询之后调用查询用户权限,这里的方法都是由spring注入的,确实很好用,通说现在都用spring全家桶了……

if中判断数据库查出来的是否有数据,也就是用户名密码是否正确,正确查出权限标号存入session,跳转到主页index页面,否则(用户名密码输入错误)返回login登录页面

在jsp页面中用jstl标签判断当前权限,选择显示页面中的信息,如果条件成立执行标签中的内容(显示内容),不成立不显示,就是判断用户权限标号是否是5

一个a用户,还有一个b用户,a用户权限是1,b用户权限是5,运行项目,登录

a用户不显示,b用户显示左面分类栏(不放图了,想想就可以了,项目放在github上还在写,)

也可以用model来存储这个权限标号,后期会改成model,这样代码会简单些。

转载于:https://www.cnblogs.com/duzhentong/p/8576513.html

用session做权限控制相关推荐

  1. SQL Server使用视图做权限控制

    问题引入 这天老鸟火急火燎的跑到菜鸟旁边,想必是遇到什么难题了:"现在有这么一个场景,假如有三种角色,并且存在层级关系,他们需要访问同一个数据源表,但是需要做权限控制,使得每种角色只能看到自 ...

  2. 前端是怎么做权限控制的?

    前端是怎么做权限控制的? 第一种权限控制 比如现在有一些项目成员,有的项目成员是测试,这个项目成员登录项目的时候就可以看到"提交冒烟用例"按钮,但是其它的项目成员则不能够看到,这个 ...

  3. Spring Cloud Data Flow整合Cloudfoundry UAA服务做权限控制

    我最新最全的文章都在 南瓜慢说 www.pkslow.com ,欢迎大家来喝茶! 1 前言 关于Spring Cloud Data Flow这里不多介绍,有兴趣可以看下面的文章.本文主要介绍如何整合D ...

  4. 使用IHttpHandler做权限控制[ASP.NET | IHttpHandler | AjaxPro | UserHostName]

    正文 Web.Config配置如下: <add verb="POST,GET" path="/page/*.aspx,/page/*/*.aspx,/page/*/ ...

  5. 新窗口打开vue项目中的静态pdf文件,并做权限控制

    问题:公司系统做安全测试,其中一个问题是没有登录的情况下,直接访问 "项目地址/operate.pdf "此地址,会展示pdf文件. 描述:点击系统内的一个按钮会打开新窗口展示系统 ...

  6. dtree做权限控制

    一个项目需要一个权限控制的模块,因为是重构的项目,用的是dtree,所有着手研究了一手dtree. 网上也有好的地案例,比如http://www.jq22.com/jquery-info5331这个网 ...

  7. 使用auth_request做权限控制

    网上很多如标题的文章,为何我还要写呢??? 网上一搜一大堆对我来说完全没用的文章,或者直接nginx官网复制过来,看得我贼无语.我的需求是校验参数是拼接到链接后面,而不是请求头的,网上大部分都是通过请 ...

  8. python描述器做权限控制_Python装饰器14-描述器

    描述器 这是Python一个重要的概念,英文名:Descriptor descriptor是对象的一个属性,只不过它存在于类的dict中并且有特殊方法get(可能还有set和__delete)而具有一 ...

  9. tp3.2.3权限控制一之详解及demo

    一.首先需明确TP3.2.3的权限控制是怎么实现的 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有多个角色, ...

  10. Flask-Login Flask-Security 登录与权限控制

    先看官方例子: from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy from flask_ ...

最新文章

  1. 2021 IEEE热门AI话题盘点:模仿生物大脑打造神经网络、GPT3“不当言论”惹关注…...
  2. DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)
  3. Sublime Text 3118 集成插件汉化定制版——赵亮(碧海情天)
  4. webpy使用笔记(一)
  5. smarty中的几个常用函数 templateExists() fetch() include
  6. STL中的关联式容器——map(映射)
  7. 保存Windows聚焦锁屏壁纸
  8. 国内主要安全产品及厂商
  9. 如何把视频压缩到最小?请看详细步骤
  10. PLC的PNP和NPN概念
  11. 点餐APP 冲刺二总结
  12. 解决Docker下载镜像速度太慢
  13. 郑州财经学院第54次全国计算机,郑州财经学院第二期教师博士班开班
  14. CSS3正方体图片轮换
  15. 第2章 人机交互的相关学科
  16. android x86 arm64,Android 的ARM架构和X86架构
  17. 使用SQL创建把数字转换成大写金额
  18. 变频器仿真软件,安装包,学习变频器的好帮手
  19. 随机分析 || 鞅不等式 —— Doob不等式、BDG不等式、指数鞅不等式
  20. 关于centos vi 和 vim

热门文章

  1. mysql执行sql批处理
  2. LINUX内核-等待队列
  3. 求职时,我问过的问题
  4. 跟我一起学C++课程笔记(第二天)
  5. linux下c语言 读取文件
  6. CSS学习总结(1)——基本介绍
  7. python获取灰度图边界
  8. C语言基础-01-指针
  9. 优化工作的冰山一角,app瘦身
  10. php 打乱数组的顺序,php数组打乱顺序