2010-06-11 55 views
1

如果我的会话以任何方式结束,那么我如何在代码中再次启动会话。关于会话statingin asp.net

+0

为什么要重新打开它?你不能那样做,但取决于你试图达到的目标,可能还有其他解决方案,可能就像增加会话超时一样简单。 – 2010-06-11 13:22:37

回答

1

你不行。当会话从浏览器或服务器中消失时,它不能重新打开,你必须开始一个新的会话。

重新打开在浏览器中关闭的会话将是潜在的安全风险。重新打开从服务器关闭的会话是不可能的,因为数据不再存在。

每个请求都在会话范围内完成(除非您专门制作无会话请求),因此如果会话因任何原因而关闭,则会在下一个请求时自动创建新会话。

0

传统上,如果您希望会话保持活跃状态​​,则必须以在会话超时时间内不断向服务器发出请求的方式编写应用程序。这可能是在JavaScript计时器上使用ajax请求或iframe回发。我从来不喜欢这些方法,但对于某些应用程序来说,它们有意义。

这是一个基于AJAX的会话刷新的一个简单的例子: http://naspinski.net/post/Automatically-refresh-your-users-Session-behind-the-scenes-using-jQuery-and-AspNet.aspx

0

你不能做到这一点,但您可以使用Session.RemoveAll()