【问题标题】:Manage ASP.NET state on website for mobile devices管理移动设备网站上的 ASP.NET 状态
【发布时间】: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 是最好的选择吗?

【问题讨论】:

    标签: asp.net session cookies


    【解决方案1】:

    Cookie 的大小有限,如果您有很多变量,这并不是最好的地方。此外,人们不喜欢 cookie,因此可以限制它们。

    ViewState 是存储数据的好地方。这是从您的 Web 表单中作为回发发送的,可用于存储合理数量的数据。例如,如果您的应用程序使用多个页面来完成一个过程(例如,订购某物),那么您可以将数据持久保存在 ViewState 中,并且当页面回发时这将可用。

    用对了,ViewState 非常有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2011-01-23
      相关资源
      最近更新 更多