ASP.NET 会话状态
ASP.NET 会话状态使您能当用户在构成 Web 应用程序的不同 ASP.NET 页面之间导航时,为用户存储和检索值。HTTP 是无状态协议,这意味着 Web 服务器将页的每个 HTTP 请求都当作相互无关的请求进行处理;默认情况下,服务器不保留上一个请求期间使用的变量的值的任何信息。因此,如果要想生成需要维护某些跨请求状态信息的 Web 应用程序(如实现购物车、数据滚动等的应用程序),就可能会非常困难。ASP.NET 会话状态将有限时间段内从同一个浏览器接收到的请求标识为一个会话,并在该会话持续期间保留变量的值。
默认情况下,所有的 ASP.NET 应用程序都启用 ASP.NET 会话状态。使用 Session 属性(将会话变量的值存储为按名称索引的集合)可方便地设置和检索 ASP.NET 会话状态变量。例如,下面的代码示例创建会话变量 FirstName 和 LastName 来表示用户的名和姓,然后将它们设置为从 TextBox 控件中检索出的值。
Session("FirstName") = FirstNameTextBox.Text
Session("LastName") = LastNameTextBox.Text
Session["FirstName"] = FirstNameTextBox.Text;
Session["LastName"] = LastNameTextBox.Text;
ASP.NET 默认情况下将会话信息存储在 ASP.NET 应用程序的内存空间。您可以使用一个独立的服务存储会话信息以便重新启动 ASP.NET 应用程序后会话信息仍然保留;或将会话信息存储在 SQL Server 中以便会话信息可供网络场中的多个 Web 服务器使用(重新启动 ASP.NET 应用程序后会话信息也会保留);或将会话信息存储在自定义数据存储区。有关更多信息,请参见会话状态模式。
除了会话状态外,ASP.NET 还提供在应用程序中保留数据的一些其他方式。有关每种方式的比较,请参见 ASP.NET 状态管理建议。
本节内容
ASP.NET 会话状态概述
描述会话状态特性的不同功能。会话标识符
描述如何使用特定的会话标识浏览器。会话状态事件
描述可添加到 global.asax 文件中的会话状态事件。会话状态模式
讨论不同的会话状态存储模式。保护会话状态
描述使用会话状态时要考虑的安全问题。如何:保存会话状态中的值
提供一个在会话状态变量中存储值的示例。如何:读取会话状态中的值
提供一个从会话状态变量读取值的示例。实现会话状态存储提供程序
描述如何创建自定义的会话状态存储提供程序,并包含一个示例。
参考
System.Web.SessionState
提供可在会话状态中存储应用程序数据的类和接口。Session
为当前 HTTP 请求提供对会话的访问。
相关章节
ASP.NET 状态管理建议
描述 ASP.NET 状态管理各个选项之间的区别。ASP.NET 状态管理
提供在 ASP.NET 应用程序中存储应用程序状态的可用方法的概述。