问题标签 [session-timeout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6955 浏览

javascript - 使用javascript检测会话是否过期


我正在使用 ASP.Net 创建一个 Web 应用程序。我在我的应用程序中使用会话。
在一种情况下,我试图通过 Javascript 访问会话变量。当我在正常状态下访问它时,它工作正常。但是会话到期后,如果点击任何按钮,它会抛出异常并表现异常,导致找不到页面。
这是我正在使用的代码;

我正在尝试在 c# 中实现类似的东西;

请帮助我,如果有人知道如何使用 javascript 检查会话是否存在。
提前致谢。

0 投票
3 回答
11799 浏览

c# - 在 asp.net 中处理会话超时的最佳方法是什么

有多种方法可以处理会话超时,例如加载函数上的“元刷新”javascript 等。

我想要一些整洁的东西,比如:超时前 5 分钟,警告用户......

我也在考虑在浏览器打开的情况下保持会话打开(但仍然需要弄清楚如何做到这一点......可能是一些刷新的 iframe)。

你如何处理会话超时,你认为我应该往哪个方向发展?

0 投票
7 回答
46801 浏览

jquery - 如何使用 Spring Security 和 jQuery 处理过期会话?

我在我的应用程序中使用 Spring Security 和 jQuery。主页使用通过 AJAX 将内容动态加载到选项卡中。一切都很好,但是有时我的选项卡中有登录页面,如果我输入凭据,我将被重定向到没有选项卡的内容页面。

所以我想处理这种情况。我知道有些人使用 AJAX 身份验证,但我不确定它是否适合我,因为它对我来说看起来很复杂,而且我的应用程序不允许在没有登录之前进行任何访问。window.location.reload()如果我们需要进行身份验证,我只想为所有 AJAX 响应编写一个全局处理程序。我认为在这种情况下最好得到401错误而不是标准登录表单,因为它更容易处理。

所以,

1) 是否可以为所有 jQuery AJAX 请求编写全局错误处理程序?

2) 如何自定义 Spring Security 的行为,为 AJAX 请求发送 401 错误,但对于常规请求,像往常一样显示标准登录页面?

3)可能你有更优雅的解决方案?请分享。

谢谢。

0 投票
2 回答
5180 浏览

php - Cakephp redirect after session expires

I'm using CakePHP in one website and I was wondering how can I automagically redirect when the session has expired?

0 投票
2 回答
623 浏览

javascript - 如何同步 JS 超时和 ASP.NET 会话超时?

好的。我无法真正解决我想要的问题 - 所以如果你能告诉我如何:

我有一个页面,每次点击都会对我的服务器进行 ajax 调用(因此,ASP 扩展了会话)

我将 ASP.NET 会话设置为 Xmin。我想当 X+1 分钟到期时,我有到期页面。我所做的是设置 JS 计时器以每 x+1 分钟验证一次以查看会话是否过期(问题是 JS 和 ASP 会话超时未同步)

如何使它们同步?

0 投票
2 回答
12430 浏览

.net-4.0 - 如何处理报表查看器会话过期异常

我有以下情况:

Microsoft Report Viewer 2010 用于在 ASP.NET Web 应用程序中以本地模式显示报告(.rdlc 文件)。报表数据是通过在 ASPX 页面后面的代码中分配数据源来提供的。这是一个例子:

通常这很好用,我们加载的每个报告都很好。

当我让页面保持打开状态直到工作进程回收,然后尝试刷新报告或在报告页面上执行任何类型的回发时,我收到一个(未处理的)异常“ASP.NET 会话已过期”。

异常信息:异常类型:AspNetSessionExpiredException 异常消息:Die ASP.NET-Sitzung ist abgelaufen oder konnte nicht gefunden >werden。在 Microsoft.Reporting.WebForms.ViewerDataOperation..ctor() 在 Microsoft.Reporting.WebForms.HttpHandler.GetHandler(String operationType) 在 Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context) 在 >System.Web.HttpApplication.CallHandlerExecutionStep .System.Web.HttpApplication.IExecutionS>tep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& >completedSynchronously)

IIS 设置为每天早上 5 点回收 我们使用 web.config 中的 InProc 设置,因此很明显,会话丢失了。如果我正确理解了 ASP.NET 行为,则未处理的异常应该会导致工作进程终止。下一个请求到达时应该有一个新的工作进程。

如果会话超时设置较低,则会导致相同的异常。这看起来很奇怪,因为根据我的阅读,报告查看器应该 ping 服务器以保持会话处于活动状态。

我试图捕捉异常,但在我在页面加载中访问它之前,它被抛出在 ReportViewer 控件内的某个地方。如果我取出IsPostBack,上面的代码仍然会执行,但它没有效果。

我尝试使用状态服务器而不是将会话保留在进程中,因此它不会丢失它的会话,但这会导致报告查看器出现其他错误。它似乎无法将其会话数据存储在状态服务器中。

环境为 Windows Server 2003 .NET 4.0 Report Viewer 2010

我在哪里可以处理错误而不终止工作进程,或者让报告使用状态服务器?

0 投票
1 回答
1362 浏览

jsf - 会话超时和登录重定向

在会话超时时,我们会重定向到登录页面,如果用户重新登录到门户,他会被重定向到他最初尝试导航的页面。

在我们的例子中,重定向页面尝试从会话中获取值,但它会因异常而严重失败,并且当不依赖于对会话变量没有任何依赖关系的页面时,它工作得很好。

处理这种情况的最佳方法是什么?我们可以将其重定向到主页,如果可以,该怎么做?

0 投票
2 回答
379 浏览

asp.net - 会话过期和用户不再有效

我在会话中缓存有关当前登录用户的信息。CurrentUser每当使用我的全局应用程序类上的属性时,都会延迟加载此信息。它通过在我的 MembershipProvider 的自定义实现上调用 GetUser() 来做到这一点,它要么从会话加载用户,要么从数据库加载用户并在会话中抛出用户对象。

我应该如何处理这种情况?

  1. 用户登录。
  2. 管理员删除用户(或停用......关键是他们无法再登录)。
  3. 用户会话到期。
  4. 用户导航到页面或发出请求,或其他任何内容。

目前,如果发生这种情况,NullReferenceExceptions 会到处抛出,因为 ASP .NET 框架调用 GetUser() 没有返回任何内容,因为它在数据库中找不到用户(并且会话中没有任何内容,因为它已过期)。

0 投票
7 回答
2665 浏览

php - 如何使在线/离线

我有一个登录系统。使用我的登录会话存储和 cookie(如果您“记住我”),然后您登录。当您在 home.php 的登录系统中时(您只能在注册会话/cookie 时输入),我希望“用户”表中的状态字段在您退出时更新为在线和离线。

我知道如何做到这一点,在您登录和注销时更新状态,但事情是这样的:当用户离开站点而不注销时我该怎么办(按下实际的注销按钮)?我的意思是如果状态设置为在线并且您离开页面,它将保持在线您可能理解..逻辑..那么在这种情况下我该怎么办?我不想有一个丑陋的弹出窗口让你在离开页面时注销,那太老派而且很糟糕。

或者,当会话用完时,您将状态设置为离线?但同样,我应该怎么做?

关于解决方案的想法和示例会很好。

像facebook 这样的网站,在聊天中,如果您离开页面,您将状态更改为空闲,并且如果您离开页面并且有一段时间您处于离线状态,那么您会以某种方式将状态更改为...如何,我不知道。

0 投票
1 回答
1713 浏览

ssh - 如何在打开 SSH 会话时添加超时(使用 ganymed-ssh2-build210.jar)?

我正在使用来自 ganymed-ssh2-build210.jar 的 ch.ethz.ssh2.Connection.Connection 对象

我想在建立与服务器的连接时添加超时,这样如果它无法打开连接,在一定时间后它应该抛出一些异常。任何人都可以帮助如何在使用连接方法建立连接时添加超时?

在此先感谢,德瓦亚尼