asp.net(c#)有关 Session 操作的几个误区

夏夜,蟋蟀劲鸣,星光灿烂,月光清澈。孩提时的晨在小山上快活的玩味着每一朵花,每一株草,亦或躺在绿油油的草地数星星。一切都是那么的美好,那么的惬意。
1.this.Session["username"]=null
HttpSessionState内部使用NameObjectCollection类型的集合对象来存储用户数据。因此使用this.Session["username"]=null仅仅是将该元素的值设为null而已,并没有真的将其从Session中移除。(为什么?晕~~~建议看看C#基础方面的书。) 正确的方法是:this.Session.Remove("username");
删除全部数据:this.Session.RemoveAll();或this.Session.Clear(); 2.this.Session.Abandon()
该方法会导致当前Session被取消,系统会触发Global.asax中的Session_End事件(仅限于Mode=InProc时)。
尽管再次发出请求时SessionID(可能)没有发生变化,但是你会发现Global.asaxSession_Start事件被触发。你还可以使用this.Session.IsNewSession属性来判断当前Session是否重新创建的。 由于某些组件和控件可能要使用Session信息(如使用this.Session.SyncRoot进行同步),因此不要轻易使用该方法清理Session。 3.用户身份验证
不要使用this.Session["username"]="ZhangSan"、if(this.Session["username"]!=null)这样的方式进行用户身份验证,这种方式既不安全也不合理。有关身份验证请参考MSDN文档或雨痕写的相关文章。

本文asp.net(c#)有关 Session 操作的几个误区到此结束。我喜欢出发,只为到达的地方都属于昨天,哪怕那山再清,那水再秀,那风再温柔,太深的留恋便成了一种羁绊,绊住的不仅有双脚,还有未来。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
ASP.NET中Response.BufferOutput属性的使用技巧

ASP.NET轻量级MVC框架Nancy的基本用法

使用grpcui测试ASP.NET core的gRPC服务

ASP.NET Core中的对象池介绍

.NET集成ORM框架HiSql