控制会话状态

更新:2007 年 11 月

Microsoft ASP.NET 提供一个 HttpSessionState 对象,您可以使用该对象跨多个请求保存有关用户会话的信息。ASP.NET 会话管理功能可伸缩并且非常可靠,您可以跨网络场使用它。

默认情况下,ASP.NET 会话对象使用客户端 Cookie 存储标识符。此标识符用于在多个服务器往返过程中定位会话。但是,ASP.NET 也支持无 Cookie 的会话模式,该模式先将客户端重定向到一个包含会话 ID 的新 URL,然后自动从该 URL 中分析出会话 ID。

对于使用会话状态的 ASP.NET 移动网页,您必须考虑下列因素:

  • 某些移动设备和网关不支持 Cookie。在这些情况下,Web 服务器必须将会话管理设置为无 Cookie 模式。

  • 某些移动设备在被无 Cookie 会话管理重定向之后处理相对 URL 会出现问题。

某些移动设备不支持 Cookie,因此对于需要持久状态的情况,您必须找到替代方法。例如,如果用户登录到某页,则应用程序将分配一个登录 ID,该 ID 用于会话剩下的过程。通常,对于这种形式的身份验证您会使用 Cookie,这称作基于 Cookie 的身份验证。但是,对于不支持 Cookie 的设备,则不能选择基于 Cookie 的身份验证。您必须改用另一种状态管理机制。

会话状态

其中一种替代方法是使用会话状态。因为您可以配置会话状态在没有 Cookie 的情况下工作,所以用户可以将 ID 保存在会话状态中。但是,这种方法的一个缺点是信息将随着会话的失效而失效。另一个缺点是此方法总是需要使用会话状态。

隐藏变量

ASP.NET 移动网页不包含用于写出隐藏变量的移动控件。而是,该窗体在 MobilePage 类的内部提供一个名为 HiddenVariables 的集合。存储在此集合中的所有名称/值对都将作为隐藏变量持久保存。当提交窗体时,将使用这些隐藏变量自动重新填充 HiddenVariables 集合。

此替代方法在页上使用隐藏变量。不管是提交到同一页还是提交到另一页,隐藏变量将作为窗体提交的一部分自动重新提交。

请参见

概念

控制视图状态

ASP.NET 状态管理概述

参考

LoadPrivateViewState

SavePrivateViewState

HiddenVariables

MobilePage

其他资源

支持视图状态

创建 ASP.NET 移动网页

应用程序开发人员指南

开发 ASP.NET 移动网页