2009-06-04 168 views
0

是否有任何方法可以在不使用会话对象或数据库的情况下保留整个Web应用程序会话中的数据?替换为asp.net会话对象

+2

为什么会议不适合你? – 2009-06-04 13:01:14

回答

0

您可以将它们通过使用

response.redirect("URL") 

的URL或者如果你想隐藏变量

Server.Transfer("URL",True) 
0

还有ViewState的,但你必须要小心一点。

0

你有几个选择......你可以坚持查询字符串上的所有内容,例如

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

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

虽然我不确定这些比使用Session更好。你为什么不想使用它。

0

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

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

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

您可以使用QueryString参数在页面之间传递信息。

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

0

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

-1

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

1

下面是持久化数据的某些选项:

  • 会议
  • 饼干
  • URL(查询字符串PARAMS典型值)
  • 隐藏的表单变量(包括ViewState中)
  • JavaScript的数据(例如,在每个请求中将数组写回客户端)
  • 使用IFRAME或框架集,以便父页不会更改,并且可以从而保持应用程序的状态