【问题标题】:Session Expired after closing browser when using State Server使用状态服务器时关闭浏览器后会话过期
【发布时间】:2012-08-11 12:50:27
【问题描述】:

我有一个非常简单的问题 我正在使用状态服务器在我的应用程序中存储会话。问题是,当我点击我的网站并登录我的网站时,如果我关闭浏览器并再次重新打开,我的会话就会丢失。我必须重新登录。即使在关闭浏览器后,我必须做些什么才能使会话保持活跃。

我的状态服务器配置如下

 <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" />

在我的 sesion_start 上的 globel.aspx 文件中,我正在这样做

// set the session timeout 20Minutes
    Session.Timeout = ConfigurationManager.AppSettings["SessionTimeOutTimeInMinutes"].ToInt32Safe();

即使在关闭浏览器后,我必须做些什么才能使会话保持活跃。

这是我在服务器上的设置图片

【问题讨论】:

  • 我认为这与会话 state 在服务器端的存储方式无关。浏览器关闭意味着会话cookie消失了。
  • 那么我应该怎么做才能避免这种情况
  • 还请记住,在 Asp.Net 中,会话和登录/身份验证是分开的。通常会话使用 cookie 保持活动状态。并且身份验证通常也使用 cookie 保持活动状态。但它们是不同的 cookie,因此您可能会在保持登录状态时失去会话,反之亦然。

标签: c# asp.net session session-cookies stateserver


【解决方案1】:

ASP.NET 会话状态使用非持久性会话 cookie(根据设计),当您关闭浏览器时,这些 cookie 将不会继续存在。如果您想要持久的会话状态,您需要一种使 ASP.NET 会话 cookie 持久的方法。

有一些例子。例如:

【讨论】:

  • 谢谢!,在第三个链接是我需要的,作为一个魅力!
猜你喜欢
  • 1970-01-01
  • 2012-05-26
  • 2011-04-21
  • 2013-11-17
  • 1970-01-01
  • 2015-08-12
  • 2016-09-23
  • 1970-01-01
  • 2016-12-13
相关资源
最近更新 更多