SessionCookie的使用总结:

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判断是否为空的情况下就尽量的判断,防止出现了空指针异常

最新文章

  1. myeclipse maven 安装
  2. 数据结构:链表(python版) 续:增加比较函数
  3. Haskell Types与Typeclasses
  4. MySQL Database on Azure 参数设置
  5. Mandelbrot和Julia
  6. 华为2013校招之哈工大威海 上机试题之一:报数问题:设有N 个人围坐一圈并按顺时针方向从1 到N 编号,从第S个人开始进行1 到M报数,报 数到第 M个人时,此人出圈,再从他的下一个人重新开始1 到 M的报数,如此进行下去直 到所有的人都出圈为止。现要打印出出圈次序。
  7. Xcode 遇到 App Transport Security has blocked a cleartext HTTP 错误
  8. ViewPager 滑动页(三)
  9. bzoj2618[Cqoi2006]凸多边形 半平面交
  10. MacOS10.9平台配置Appium+Java环境
  11. 遇到个奇怪的问题,同时开启本地和远程两个事务,远程事务是sql2000没问题,是sql2008的不报错,但是写不上数据
  12. html5、css3及响应式设计入门
  13. 51nod_1181:质数中的质数
  14. SHA安全散列算法简析
  15. 【python】del
  16. 基于 Python 和 Pandas 的数据分析(4) --- 建立数据集
  17. IDEA教程之导入maven项目
  18. SQL中的坑
  19. 转载:不定义JQuery插件,不要说会JQuery
  20. RecyclerView分隔线定制

热门文章

  1. scrapy 抓取动态网页
  2. [SOJ]连通性问题
  3. css margin相关问题及应用
  4. re2c实例
  5. open(&quot;&quot;,&quot;r&quot;)与open(&quot;&quot;,&quot;rb&quot;)的效率区别
  6. 非root用户搭建hadoop伪分布式
  7. PHP识别电脑还是手机访问网站
  8. Storm-0.9.0.1安装部署 指导
  9. javascript生成新标签的三种方法
  10. 设置div控件居中的方法