第五讲:用户退出登陆
< 返回列表时间: 2019-06-04来源:OSCHINA
【围观】麒麟芯片遭打压成绝版,华为亿元投入又砸向了哪里?>>>
前面几讲涉及到了用户登陆成功了,那么我们本次讲的是用户登陆成功,并做完一些操作有,如果实现退出。本讲涉及到session。
我们要实现系统对用户在各个页面的权限进行识别,最有效的方式是采用session或cookie,两者的区别是:
cookie以文本格式存储在浏览器上,存储量有限;
而会话session存储在服务端,可以无限量存储多个变量并且比cookie更安全.
所以我们下面采用的是session进行操作,在登陆成功的时候新建一个用户的Session["User"],然后系统会根据这个session来判断用户的一些权限问题,当我们把这个session置空,则系统认为用户已经退出登陆。
以下是步骤。
1、我们需要新建一个用户模型类,用户存储用户的一些数据在session里面。
进入models文件夹,通过新建类的方式来新建一个模型。

下面是User类里面的代码,主要是根据数据库来进行了一些设置(最后面的power字段是临时添加的,后面再对权限进行讲解,理论上用户模型要包含数据库对应的表的所有字段,我这里只是用了几个字段)。

2、新建用户模型的数据工具类,当然这个是为了方便管理,在项目根目录下新建一个DBTools文件夹,然后在文件夹里面新建一个UserTools.cs类

在UserTools类里面代码如下,目前主要用户通过输入一个数据表用来生成一个用户模型:

修改下login控制器里面的post方式的index函数,在用户登陆成功的时候,新建一个用户对象并设置好改对象。

对admin控制器代码进行修改,主要是对所有的action进行用户登陆的判断,还有新增一个登出的action,对head头部的action进行代码修改。

我们要实现的是在head头部显示用户的姓名,并且在head头部预留有一个退出的链接,所以head前台代码如下:

<a>标签加上 target="_top",含义是这个链接就会在整个页面中打开,而不是在某个块中打开,也就是跳出了frameset这个框架,如果没有这个参数,则只是头部文件跳转到了登陆视图,其他页面还是原始视图。
效果如下:

下面是效果的操作步骤:
1、启用调试的是admin/head视图,由于加入了session验证,所以页面会自动跳转到登陆界面


2、登陆成功后如下所示:

3、点击退出按钮后,系统直接退出到登陆界面

课堂视频地址如下:
链接:https://pan.baidu.com/s/1nTE4o1CRww5XtwSXTDomCQ
提取码:ull2
复制这段内容后打开百度网盘手机App,操作更方便
热门排行