深究ASP.NET Session

Session 本质 & 访问方法


Session 本质 是 HttpSessionState 类 link

Session 访问方法

  • HttpContext.Session
  • Page.Session

SessionID


SessionID是Session的唯一标识符

SessionID本来是120bits,经过加密后为168bits 即24个ASC字符(24*7bits)

SessionID默认存储于Cookie中ASP.NET_SessionId
可通过设置Cookieless,将SessionID存储于url中

Session 存储


存储位置

Session默认存储于Web Server内存中
可以通过修改 SessionStateMode 将其存储于其它地方

  • SQL Server
  • ASP.NET State Server
  • custom server

存储结构

Session Keys _coll _entriesArray [0]

Session存储数据所用的类型是 NameObjectCollectionBase
该类基础是hash table
存储元素方式为 键/值对(string/object)

参考链接


ASP.NET中Session对象的机制及存储方式探析

MSDN HttpSessionState类

原文地址:https://www.cnblogs.com/moonache/p/5602950.html