【问题标题】:When should I consider to use SessionState to keep my variable values?我什么时候应该考虑使用 SessionState 来保留我的变量值?
【发布时间】:2011-03-21 00:01:36
【问题描述】:

可以这样说

“如果您遇到这些情况,那么 SessionState 是在回发之间存储您的值的必备工具。”

您能否列出迫使 asp.net 开发人员从 ViewState 或 HiddenFields 或查询字符串切换 SessionState 的基本原因?

谢谢

【问题讨论】:

    标签: .net asp.net viewstate session-state hiddenfield


    【解决方案1】:

    只要您想保留信息,就会使用会话状态

    • 每位用户
    • 在服务器上

    服务器部分是出于安全原因。您不希望在视图状态、隐藏字段或查询字符串中传递对浏览器很安全的信息。这 3 个很容易阅读。

    同时确保不要在会话状态中放置太多信息,或者当您这样做时重新考虑使用进程外方法,例如使用状态管理器或 sql server。

    【讨论】:

      【解决方案2】:
      • 有时它会节省一些精力 你有一个特定于用户的对象 将在用户时按原样旅行 导航超过两个页面。

      • 当用户数据敏感时,您 不能使用客户端技术来保存 它,如果你加密它,你会 通过以下方式解决性能问题 加密和解密数据 每次你工作时,尤其是在 大型系统当aspx页面有 数千行代码( 性能差到可以打)

      【讨论】:

        【解决方案3】:

        添加到已经收到的答案:

        • 当您想要与用户关联的数据量相对较大时。在这些情况下,如果您正在处理回发(超过 150K 的任何内容都可能会减慢对爬网的响应)并且查询字符串完全不合适(因为 URL 大小以及网络服务对长度的硬限制),ViewState 会非常慢浏览器。)

        【讨论】:

          【解决方案4】:

          如果您有一个用户独有的数据,获取/创建相对昂贵但不需要太多内存来存储,那么您就有一个很好的候选人。

          一个示例是从昂贵的数据库查询中获取的数据或从远程 Web 服务中检索的数据。

          ViewState、隐藏字段和查询字符串应该用于少量不敏感的数据。

          允许用户通过查询字符串输入数据可能特别有用,因为用户可以制作包含这些数据的书签。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-02-02
            • 1970-01-01
            • 1970-01-01
            • 2011-07-03
            • 1970-01-01
            • 1970-01-01
            • 2016-06-21
            相关资源
            最近更新 更多