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 状态管理建议

本节内容

参考

  • System.Web.SessionState
    提供可在会话状态中存储应用程序数据的类和接口。

  • Session
    为当前 HTTP 请求提供对会话的访问。

相关章节