Session
2015-10-30 01:36
211 查看
Session对象时System.Web.HttpSessionState类的实例,用于存储特定的信息,但是它和Application对象在存储信息所使用的对象时完全不同的。
Application :对象存储的是共享信息。
Session :存储的信息是局部的,是随用户不同而同的。
如果只需要在不同页面中共享数据,而不是需要在不同的客户端之间共享数据,就可以使用Session对象。
Session的生命周期是有限的(默认值为20分钟),可以使用TimeOut属性进行设置。在Session的生命周期内,Session的值是有效的。如果用户在大于生命周期的时间里没有再访问应用程序,Session就会自动过期,Session对象将会被CLR释放,其中保存的数据信息也将丢失。
CodePage : 获得或设置字符集标识。
Contents : 获得当前Session状态对象的引用。
CookieMode : 获得当前的Cookie,以确定系统是否要将Session配置为不需要Cookie支持。
Count : Session 状态集合的总数。
IsCookieLess : 是否需要Cookie支持,如果需要就可以将SessionID保存在Cookie中,如果不需要就必须嵌入在URL中。
IsNewSession : 标志当前Session是否是新的Session。
IsReadyOnly : 是否只读。
IsSynchronized : 是否同步。
Item : 通过索引获得或者设置单个Session值。
Keys : 获得Session集合的所有键。
LCID : 获得和设置当前Session的本地标识符。
Mode : 获得当前的Session模式。
SessionID : 获得Session的唯一编号,为了区别不同的会话,系统会为每一个会话分配一个唯一的ID。
StaticObjects : 获得在Global.asax中以
<object Runat="Server" Scope="Session"/> 声明对象集合
Timeout : 获得和设置会话超时时间,如果客户端在连续一个时间段内没有反应,就自动清除会话,断开连接,Timeout就是这个时间。
Add : 添加一个新对象到HttpApplicationState集合。
Clear : 清除HttpApplication集合中的所有对象。
Get : 通过索引和名字获得HttpApplicationState对象。
Abandon : 清除当前会话。
Copyto : 复制Session 状态集合到一个一维数组。
Remove : 从HttpApplicationState 集合删除一个对象。
RemoveAll : 删除HttpApplicationState集合中的所有对象。
RemoveAt : 根据索引删除一个HttpApplicationState对象。
1、会话状态。
2、每个用户(浏览器实例)一份。
3、当用户访问WEB服务器,则被分配一个SessionID。
4、会话结束或超时,自动释放。
5、没有存储类限制(object)。
6、存储大小只受内存限制。
7、SessionID 第一次访问服务器后获取,并存储在本地Cookie中Session的值存储在服务器的内存中(默认方式)。
8、Cookie被禁用,Session也不能适应(默认方式)
Session存储机制
创建一个Session的Key(与修改相同)
Session["KeyName"]=……;
Session.Add("KeyName",objectValue);
赋值的内容可以使任何类型,String、Int、Boolean各种类型、数组、控件等。
Add方法创建Session时,没有的新建,有的则覆盖。
获取一个Session :
1、存储字符串:String str_ss=Session["ss_str"].toString();
2、存储数值 : Int i_ss=(Int)Session["ss_int"];
3、如果存储的是一个控件:
TextBox txt_ss=(TextBox)Session["ss_txt"];
清除Session :
1、清除一个Session的程序语句:
Session.Remove("KeyName");
2、清除所有Application的程序语句:
Application.Abandon();
注意:
如果是在按钮中清除Session,那么有页面生命周期知道:
PageLoad事件中仍能读取到清除之前的Session的值,如果想得到清除之后的值,我们现在最简单的办法是清楚后,再一次获取页面Response.redict(当前URL)。
如何获取当前的URL:
Request.Url.LoadPath.toString();
Application :对象存储的是共享信息。
Session :存储的信息是局部的,是随用户不同而同的。
如果只需要在不同页面中共享数据,而不是需要在不同的客户端之间共享数据,就可以使用Session对象。
Session的生命周期是有限的(默认值为20分钟),可以使用TimeOut属性进行设置。在Session的生命周期内,Session的值是有效的。如果用户在大于生命周期的时间里没有再访问应用程序,Session就会自动过期,Session对象将会被CLR释放,其中保存的数据信息也将丢失。
CodePage : 获得或设置字符集标识。
Contents : 获得当前Session状态对象的引用。
CookieMode : 获得当前的Cookie,以确定系统是否要将Session配置为不需要Cookie支持。
Count : Session 状态集合的总数。
IsCookieLess : 是否需要Cookie支持,如果需要就可以将SessionID保存在Cookie中,如果不需要就必须嵌入在URL中。
IsNewSession : 标志当前Session是否是新的Session。
IsReadyOnly : 是否只读。
IsSynchronized : 是否同步。
Item : 通过索引获得或者设置单个Session值。
Keys : 获得Session集合的所有键。
LCID : 获得和设置当前Session的本地标识符。
Mode : 获得当前的Session模式。
SessionID : 获得Session的唯一编号,为了区别不同的会话,系统会为每一个会话分配一个唯一的ID。
StaticObjects : 获得在Global.asax中以
<object Runat="Server" Scope="Session"/> 声明对象集合
Timeout : 获得和设置会话超时时间,如果客户端在连续一个时间段内没有反应,就自动清除会话,断开连接,Timeout就是这个时间。
Add : 添加一个新对象到HttpApplicationState集合。
Clear : 清除HttpApplication集合中的所有对象。
Get : 通过索引和名字获得HttpApplicationState对象。
Abandon : 清除当前会话。
Copyto : 复制Session 状态集合到一个一维数组。
Remove : 从HttpApplicationState 集合删除一个对象。
RemoveAll : 删除HttpApplicationState集合中的所有对象。
RemoveAt : 根据索引删除一个HttpApplicationState对象。
1、会话状态。
2、每个用户(浏览器实例)一份。
3、当用户访问WEB服务器,则被分配一个SessionID。
4、会话结束或超时,自动释放。
5、没有存储类限制(object)。
6、存储大小只受内存限制。
7、SessionID 第一次访问服务器后获取,并存储在本地Cookie中Session的值存储在服务器的内存中(默认方式)。
8、Cookie被禁用,Session也不能适应(默认方式)
Session存储机制
SessionID:24个字符串组成的随机字符串 | Session实际内容 |
Cookie (默认) 如果客户禁用Cookie,那么Session也失效 | InProc(默认)内存 Web服务器的内存 |
URL不能使用绝对链接 | StateServer 独立的Windows服务进程中 |
SqlServer SqlServer 服务器的数据表中 |
Session["KeyName"]=……;
Session.Add("KeyName",objectValue);
赋值的内容可以使任何类型,String、Int、Boolean各种类型、数组、控件等。
Add方法创建Session时,没有的新建,有的则覆盖。
获取一个Session :
1、存储字符串:String str_ss=Session["ss_str"].toString();
2、存储数值 : Int i_ss=(Int)Session["ss_int"];
3、如果存储的是一个控件:
TextBox txt_ss=(TextBox)Session["ss_txt"];
清除Session :
1、清除一个Session的程序语句:
Session.Remove("KeyName");
2、清除所有Application的程序语句:
Application.Abandon();
注意:
如果是在按钮中清除Session,那么有页面生命周期知道:
PageLoad事件中仍能读取到清除之前的Session的值,如果想得到清除之后的值,我们现在最简单的办法是清楚后,再一次获取页面Response.redict(当前URL)。
如何获取当前的URL:
Request.Url.LoadPath.toString();
相关文章推荐
- 网易云音乐8亿用户背后的伤疤
- 谷歌正式开始补偿Nexus 6P重启门和电池门用户:最高赔400美元
- 数据中心和云未来的十二大趋势
- 使用zabbix监控Nginx活动状态--Part1
- windows server域用户提升到本地更高权限组中的方法
- 管理 Linux 系统中的用户
- cookie的secure属性详解
- 浏览器 cookie 限制
- 使用 Iisext.vbs 删除应用程序依存关系的实现方法
- Sql Server 应用程序的高级Sql注入第1/2页
- 个人用户防黑指南
- CMD命令行中以管理员权限启动应用程序实现方法
- 计算机信息处理
- 可以获取客户端的IP地址的sql语句
- SQL Server提示"选定的用户拥有对象,所以无法除去该用户”
- 解析MYSQL显示表信息的方法
- PowerShell查看进程的所属用户
- C#创建windows系统用户的方法
- C#获取进程或线程相关信息的方法