替换asp.net会话对象

时间:2009-06-04 12:59:18

标签: asp.net

有没有办法在不使用会话对象或数据库的情况下在整个Web应用程序会话中保留数据?

7 个答案:

答案 0 :(得分:1)

以下是保留数据的一些选项:

  • 会话
  • 缓存
  • URL(通常是查询字符串)
  • 隐藏表单变量(包括ViewState)
  • javascript数据(例如,在每次请求时将数组写回客户端)
  • 使用IFRAME或框架集,以便父页面不会更改,从而可以维护应用程序的状态

答案 1 :(得分:0)

您可以使用

通过网址传递它们
response.redirect("URL")

或者如果你想隐藏变量

Server.Transfer("URL",True)

答案 2 :(得分:0)

还有ViewState,但你需要小心。

答案 3 :(得分:0)

你有几个选择......你可以在查询字符串上保留所有内容,例如

http://www.example.com/MyPage.aspx?PersistedValue1=Value1&PersistedValue2=Value2

或者,如果它们是页面级别或全局设置,您可以将它们存储在Viewstate / Cache / Application变量中。

虽然我不确定这些中的任何一个比使用Session更好。你为什么不想用它。

答案 4 :(得分:0)

这取决于你不喜欢的会话和数据库。例如:

您可以设置一个单独的进程(如Windows服务)来为您存储会话状态信息。无论您真正喜欢什么,该过程都可以将信息保存在内存或文件中。结帐this文章了解更多信息。

您可以有效地实现自己的会话系统,该系统将用户特定的实现存储在Web服务器上的XML文件中。

您可以使用QueryString参数将信息从一个页面传递到另一个页面。

您可以使用asp.net Cache对象并使用UserID键入信息。

答案 5 :(得分:0)

您可以创建一个作为cookie发送的新GUID,并将GUID存储在保存在应用程序对象中的自定义对象中。话虽如此,使用ASP.NET内置的会话管理,您的应用程序可能会表现得更好。

答案 6 :(得分:-1)

不是会话? 然后使用数据库它是次佳的!