【发布时间】:2017-04-28 02:06:36
【问题描述】:
我已经接管了一个 100% 设计用于移动设备的 ASP.NET Web 表单应用程序的开发。目前,该应用程序大量使用会话变量。模式为默认模式。
<sessionState timeout="600"></sessionState>
该应用程序有错误不会让您感到惊讶,其中大部分问题与会话数据丢失或整个会话丢失有关。
只是对应用程序的一些总体概述:
- 会话中不存储敏感(安全风险)数据
- 会话中的数据很小,但任务很关键。没有巨大的物体。只是几个 INT(Id 等)、一些字符串等。
- 我们必须假设用户的带宽会很低,并且连接性会参差不齐
- 每个用户的数据都是唯一的
关于如何使这个应用程序变得更好,我对管理层的一个建议是停止使用 Session 变量并改用其他东西。我认为切换到 cookie 来存储所有这些数据是一种更好的处理方式。我知道有些用户可能会禁用 cookie(即使在他们的移动设备上),但如果是这种情况,我们可以简单地通知他们要使用该网站,他们需要重新打开 cookie。
我考虑过使用查询字符串,但仅从编程的角度(构建链接等)来看,查询字符串很难使用。
在阅读了这篇 MSDN 文章后,我得出了这个结论,该文章介绍了持久化状态数据的各种方法,以及它们各自的优缺点:
https://msdn.microsoft.com/en-us/library/z1hkazw7.aspx
我的问题是:cookie 是最好的选择吗?
【问题讨论】: