ASP.NET在多个页面会话之间传递数据

Min*_*wth 3 asp.net

因此,似乎没有任何关于如何在多个页面之间传递数据的问题的答案.在完成一些小作业后,这就是为什么(或者至少我收集到的内容):

  1. ViewState变量不会跨页面持久存在.
  2. 会话变量是易变的,必须谨慎使用.
  3. Cookie存在潜在的安全问题,需要时间并且必须保持较小.
  4. 在URL中存储变量对数据量有限制,并且可能不安全.
  5. 临时在数据库中存储变量是一个真正的皮塔,因为每个对象可能会添加一个可能传递给另一个页面的表.

    到目前为止,看起来我将使用隐藏字段将keyid和唯一ID传递给下一页,然后从db中检索数据.你对这一切有什么看法?做任何一件事的最佳方法是什么?我在这个应用程序的开发早期,所以现在进行更改是首选.

编辑:我期待很多用户在任何时候使用此应用程序,这是否会影响我是否应该使用基于SQL Server的会话?

Kel*_*sey 5

如果要保持状态,请将其存储在数据库中,因为您不必担心过期.这Session是类似的,除了你不得不担心Session到期.在这两种情况下,将相似数据写入同一区域的并发调用可能会导致问题,需要加以考虑.

Session当您不必担心多个Web服务器或超时问题时,这是很好的.数据库为您提供了更多的可伸缩性,但代价是执行大量的数据库读/写操作,您必须考虑清理.

我个人会尝试使用以下决策树:

  1. 数据是简单,简短而非私有 - >查询字符串
  2. 数据不那么简单,但只需要在短时间内存在 - >会话
  3. 是否需要跨多个区域的数据并持续很长一段时间 - >数据库

当然还有更多这个,但是这应该给你一个基本的考虑因素,因为你刚刚开始.把事情简单化.如果简单的查询字符串就足够了,请不要尝试过度设计解决方案.只要你保持简单的开始,你总是可以过度工程.