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 文档或雨痕写的相关文章。

原文链接:http://www.cnblogs.com/X-Jonney/archive/2009/03/19/1416699.html

转载于:https://www.cnblogs.com/tangself/archive/2010/04/07/1706576.html

C#有关Session 操作的几个误区【转】相关推荐

  1. 有关 Session 操作的几个误区

    1. this.Session["username"] = null HttpSessionState 内部使用 NameObjectCollection 类型的集合对象来存储用户 ...

  2. php session操作类,操作Session的PHP类

    这个是一个php对session的再次包装的类,实现的常用的session操作,包含读取,写入,销毁等等 class Session { function Session() { session_st ...

  3. Flask中的session操作

    https://www.cnblogs.com/notzy/p/9187304.html 一.配置SECRET_KEY 因为flask的session是通过加密之后放到了cookie中.所以有加密就有 ...

  4. session保存密码_年薪百万之路--第六十四天 Cookie操作与session操作

    forms组件源码 切入点:form_obj.is_valid() """ def is_valid(self):"""Returns Tr ...

  5. bboss 会话管理session操作使用示例

    bboss 会话管理session操作使用示例(遵循servlet标准规范): HttpSession session = request.getSession();//request.getSess ...

  6. Flask-中session的工作机制和session操作

    1.把敏感的数据经过加密后放入session中,然后在把session存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取session, 然后再从session中读取敏感数据 ...

  7. php session操作

    启动 Session 会话,并创建一个 $admin 变量: <?php //  启动 Session session_start(); //  声明一个名为 admin 的变量,并赋空值. $ ...

  8. 三、通过session操作hibernate(hql语句)

    在没有将spring和hibernate整合在一起的时候,要使用hibernate,在持久层需要如下步骤: 一.在还没有对hibernate进行spring的整合的时候,我们需要写一个session工 ...

  9. 【实战篇】执行计划3种看法,2种操作,4个误区

    1五一长假 本人绝对不是 996 的崇尚者,该工作的时候,高效工作(尽管高效是自认为的):该浪的时候,疯狂得浪.正所谓学要学得尽兴,玩要玩得开心(虽然可能鲁迅没说过这话). 虽然摄影艺术不咋的,却是一 ...

最新文章

  1. Visual C#弹出窗口杀手
  2. 2021牛客暑期多校训练营(二) J. Product of GCDs 不动脑子的莫比乌斯反演做法(
  3. java ajax jquery分页插件_JQueryPagination分页插件,ajax从struts请求数据
  4. IP-Address TextBox
  5. 【 FPGA 】状态机的模型之Mealy型状态机
  6. Rsync 基本安装及同步(一)
  7. 揭秘北京2022冬奥会背后的技术
  8. Java异常分类及处理
  9. 十四、MySQL函数相关知识总结(简单易懂)
  10. php 冒泡排序数组,php一维二维数组键之冒泡排序
  11. php+彩票中奖判断,彩票算法 – PHP – 数学似乎不错,但功能是否有效?
  12. 陪孩子一起学习python
  13. TransE如何进行向量更新?
  14. win7计算机不显示dvd,win7系统不显示光驱盘符的解决方法
  15. linux搭建代理服务器
  16. 夜莺(Nightingale)企业级监控平台
  17. 详解Win10系统下打开.jks签名文件的方法
  18. 面试了一位-46-岁的程序员,思绪万千,最后结局竟让我大惊失色
  19. C++11智能指针(unique_ptr、shared_ptr、weak_ptr)boost::scoped_ptr
  20. [Anaconda] 不需要重装环境,解决引用scipy包时Could not find module ‘...gfortran-win_amd64.dll‘问题

热门文章

  1. Codeforces 1153 C Serval and Parenthesis Sequence
  2. PMP知识点(六、质量管理)
  3. 笔记-项目范围管理-复习要点
  4. Express的基本路由实现对get和post等的请求和响应
  5. C#中通过单例模式以及Dictionary实现键值对的映射,通过key获取value
  6. C#中使用SharpZipLib进行解压缩然后进行二进制反序列化
  7. Java中通过substring和charAt截取字符串并获取指定字符
  8. ImportError:cannot import name ‘WordCloud’的解决办法
  9. 软考-信息系统项目管理师-项目人力资源管理
  10. fiddler自动保存mysql_Fiddler模拟自动响应数据