当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net(c#)有关 Session 操作的几个误区

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

2018年04月25日  | 移动技术网IT编程  | 我要评论

2013dj舞曲,曼联 托迈酷客官网,集众思建站

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.asax session_start 事件被触发。你还可以使用 this.session.isnewsession 属性来判断当前 session 是否重新创建的。 

由于某些组件和控件可能要使用 session 信息(如使用 this.session.syncroot 进行同步),因此不要轻易使用该方法清理 session。 

3. 用户身份验证 
不要使用 this.session["username"] = "zhangsan" 、if (this.session["username"] != null) 这样的方式进行用户身份验证,这种方式既不安全也不合理。有关身份验证请参考 msdn 文档或雨痕写的相关文章。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网