Session和Cookie的使用总结
Session和Cookie的使用总结:
Session和cookie都是asp.Net中的内置对象,至于他们有什么区别,在这里就不在多说,现在来说说一些比较实用点的东西:
我们知道网站都有一个后台管理系统,其中有登录和退出两个功能,在登录的时候我们往往会把用户的信息保存到session或者cookie中,以便后面使用,那么在登录的时候我们要注意哪些呢?
1、把一些敏感的东西存到session中,不太敏感的东西可以存在session或者Cookie中,比如用户名就是不太敏感,但是介于有些浏览器不支持cookie的使用,所以我们会把它存到session中,但是session有的时候在服务器中容易丢失,所以我们可以结合cookie一起使用,就是说当session的丢失的时候,如果cookie还在我们设定的有效期内,就可以再一次从Cookie中取出值放进session里,所以我们最好同时用session和cookie保存用户名等信息
或者在配置文件里
<sessionState timeout="2" mode="StateServer" />
来解决session丢失的问题也可以
2、我们希望后台管理在多长时间没有操作的情况下,让session失效,重新登录,可以使用session.timeout=5,以分钟为单位,表示5分钟之内没有其他操作,就失效,或者在配置文件中配置<sessionState timeout="5" mode="InProc" />也可以
3、cookie有效期的设置
httpCookie.Expires = DateTime.Now.AddMinutes(2);
cookie的有效期为2分钟
4、页面中判断是否有权限访问该网页的时候,可以如下判断:
if (Request.Cookies["httpCookie"] != null)
{
Session["admin"] = Request.Cookies["httpCookie"].Values["admin"].ToString();
}
if (Session["admin"] == null)
{
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请重新登 录');location.href='logins.aspx'</script>");
}
下面在来说说退出的时候该怎么做比较好
1、 退出的时候session和Cookie的值都要清空,现在来简单说说session的几个方法的区别:
Session.clear():表示将会话中所有的session的键值都清空,但是session还是依然存在,同等于Session.RemoveAll()
Session[“admin”]=null:表示将制定的键的值清空,并释放掉,和session[“admin”]=””不一样,它清空了,但是session不释放,同等于session.Remove(“name”);
Session.Abandon()就是把当前Session对象删除了,下一次就是新的Session了。
主要的不同之处在于当使用Session.Abandon时,会调用Session_End方法(InProc模式下)。当下一个请求到来时将激发Session_Start方法。而Session.Clear只是清除Session中的所有数据并不会中止该
Session,因此也不会调用那些方法,Abandon方法用于主动结束会话,若没有调用该方法,当会话超时后,也会自动结束当前会话。
2、 下面在来看看如何清除cookie
A、tpCookie cookie = System.Web.HttpContext.Current.Request.Cookies.Get("tuser");
cookie.Expires = DateTime.Now.AddDays(-1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
B、tpCookie httpCookie = Request.Cookies["httpCookie"];
httpCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(httpCookie);
AB两种方法都可以
3、 所以session清除当前的值就可以了即Session[“admin’]=null就可以了,Cookie按照以上方法清除即可
建议和意见:
1、 在退出的时候我们可以在创建一个logout的页面来写时间,这样比较好一些
2、 无论在进行什么操作的时候,能用If判断是否为空的情况下就尽量的判断,防止出现了空指针异常
Session和Cookie的使用总结的更多相关文章
- 理解Session与Cookie
写在前面的话:Session和Cookie是非常有意思的两个概念,对于两者的管理可以处理的很复杂,但是无论如何,理解Session和Cookie的基本概念和发明初衷,对于问题的解决,大有裨益. === ...
- PHP之session与cookie
1.session与cookie的关系 众所周知,session是存储在服务器端,cookie是存储在客户端,如果禁用了浏览器的cookie功能,很多时候(除非进行了特殊配置)服务器端就无法再读取se ...
- 安全退出,清空Session或Cookie
概览: 网站中点击退出,如果仅仅是重定向到登录/出页面,此时在浏览器地址栏中输入登录后的某个页面地址如主页,你会发现不用登录就能访问.这种所谓的退出并不是安全的. 那么怎样做到安全退出呢? 那就是点击 ...
- 11月7日上午PHP会话控制(session和cookie)、跨页面传值
1.session 登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器: (2)session每个人(登陆者)存一份: (3)session ...
- 【荐】PHP Session和Cookie,Session阻塞,Session垃圾回收,Redis共享Session,不推荐Memcached保存Session
什么是 Session 在 web 应用开发中,Session 被称为会话.主要被用于保存某个访问者的数据. 由于 HTTP 无状态的特点,服务端是不会记住客户端的,对服务端来说,每一个请求都是全新的 ...
- Session与Cookie概念
摘:一.Session机制session是一种服务器端的状态管理技术,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息.当程序需要为某个客户端的请求创建一个session的时候,服务 ...
- session和cookie
第一次听到cookie这个词的时候着实兴奋了一段时间,以为是小饼干呢~快喝一杯82年的java压压惊!哈哈~ 与cookie的第一次邂逅——清缓存和清cookie 刚毕业的时候上班,做二次开发,明明后 ...
- 深入理解Session与Cookie
Session与cookie的作用都是为了保持访问用户与后端服务器的交互状态. cookie通过把所有要保存的数据通过HTTP协议的头部从客户端传递到服务端,又从服务端再传回到客户端,所有的数据都存储 ...
- TP中的session和cookie
session:1.session('name','value'); //设置session2.$value = session('name'); // 获取所有的session 3.2.2版本新 ...
- thinkphp里的session、cookie方法
thinkphp里,对于session和cookie的操作,不管是存值.获取.删除,均只有一个方法.现分享出来,供大家参考参考. /** * session管理函数 * @param string|a ...
随机推荐
- ELK 日志系统搭建配置
logstash是一个数据分析软件,主要目的是分析log日志.整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是v ...
- AngularJS 初学笔记(理论基础)
AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库. AngularJS 通过 ng-directives 扩展了 HTML. ng-app 指令定义一 ...
- 学习笔记:shell 中 [-eq] [-ne] [-gt] [-lt] [ge] [le]
-eq //等于 -ne //不等于 -gt //大于 (greater ) -lt //小于 (less) -g ...
- jsp中,对window对象的简单总结
window的对象有: alert(message) 弹出一个警示对话框confirm(message) 弹出一个确认对话框prompt(message,defaultmessage) 弹出一个提示对 ...
- 从补丁到POC CVE-2015-0003(2015.3)
从补丁到POC CVE-2015-0003 1. 简介 该漏洞是由于Windows的win32k.sys模块存在对用户层参数验证不完全,导致存在空指针解引用(Null Pointer Derefere ...
- angular中的等号(==)判定
使用angularjs的时候会使用到其中的表达式,其中有相等的判断.由于js有==和===的区别,于是就想看看是否相同.自己稍微做了一点测试,一看便知. 先给结论:angularjs表达式中的==和= ...
- 非root用户搭建hadoop伪分布式
0.安装软件列表 jdk-7u25-linux-x64.tar.gz hadoop-2.5.0.tar.gz hadoop-native-64-2.5.0.tar 1.准备Linux环境(root ...
- javascript静态页面传值的三种方法分享
一:JavaScript静态页面值传递之URL篇能过URL进行传值.把要传递的信息接在URL上.Post.htm 复制代码 代码如下: <input type="text" ...
- liunx下试用yum进行php及opchache扩展安装
Centos 6.6 环境: php 5.6.29 nginx:1.10.2 1.配置安装包源 # CentOs 6.x rpm -Uvh http://mirror.webtatic.com/yum ...
- 如何使用Java、Servlet创建二维码
归功于智能手机,QR码逐渐成为主流,它们正变得越来越有用.从候车亭.产品包装.家装卖场.汽车到很多网站,都在自己的网页集成QR码,让人们快速找到它们.随着智能手机的用户量日益增长,二维码的使用正在呈指 ...