在ASP.NET应用程序中将SQL Server设置为状态处理程序时,会话超时是如何处理的,或者在何处?
从数据库加载会话对象后判断对象是否过期,或者SQL Server本身是否负责处理这个问题,是.NET框架吗?我怀疑(或甚至认为)后一种可能性的原因是,创建ASPState的脚本提到了一些关于ASPState_Job_DeleteExpiredSessions-element的内容.
如果它是一个SQL Server作业清理,这个作业多久会触发一次,它如何与web.config中的timeout参数对齐?
我有$_SESSION包含用户登录用户名的变量,它们具有默认的会话生命周期(我认为是24分钟).我想知道是否有办法在会话超时时执行一个函数.
我知道当用户重新加载页面并且会话变量已经过期时我可以告诉页面执行该函数但是我正试图找出服务器自己完成此操作的方法.有这样的方法吗?
我的推理:当用户登录时,我向我的数据库报告并更新'lastlogin'的用户记录.我想在用户单击注销或$_SESSION变量过期时更新"lastlogout" .
我有一个经典的ASP网站,只要用户打开一个页面,我希望会话保持活跃状态.所以我使用了一些Javascript定期调用'keepalive'ASP页面来保持会话处于活动状态,因此没有达到超时.
我需要在ASP页面代码中放置什么来确保它更新会话计时器?可以是空白页面还是我需要点击Session对象?
我正在使用Spring Security开发Grails Web应用程序。我有一个要求,即使会话处于活动状态,也必须在固定的时间后强制会话过期。
我想我可以添加过滤器并检查每个请求的上次登录时间:
if (CURRENT_TIME - LAST_LOGIN > ABSOLUTE_SESSIO EXPIRATION) then FORCE LOGOUT
Run Code Online (Sandbox Code Playgroud)
但是问题在于,直到用户发出请求,会话仍在服务器上处于活动状态。
即使用户正在使用系统,这是否有可能在N分钟后立即破坏会话?我正在研究tomcat会话管理以及spring security如何处理它,但没有找到任何有用的信息。
有人可以指出我的例子吗?有人实施过类似的方法吗?
我正在使用servlet构建一个java web棋盘游戏.我需要知道用户何时没有回答30秒,我正在使用
session.setMaxInactiveInterval(30);
Run Code Online (Sandbox Code Playgroud)
但是我需要在服务器端知道一旦时间结束,所以我可以使这个播放器相当.
现在,一旦玩家返回并尝试做某事,他将获得超时,我可以在服务器上看到.
一旦会话超时,我怎么能在servlet中知道?!
谢谢.
当会话超时时,我试图让JSF Web前端重定向回到登录页面(在Spring Security中).
我尝试过使用元刷新方法,但这会导致不希望的副作用,即当页面上只使用AJAX控件时,元刷新时间不会更新.这意味着页面可能会在您仍在使用时刷新,因为您尚未转换到另一个页面并且只对服务器进行了AJAX调用.我还没有找到一种方法来使用Primefaces轻松改变这种行为.
当会话过期时,Spring Security会向Primefaces发送302 HTTP错误消息,但Primefaces会忽略重定向请求.您可以判断会话何时到期,因为Primefaces控件因其AJAX调用未成功而停止响应.
我使用的是Primefaces 3.4.2,以及在Glassfish 3.1.2.2上运行的Spring Security 3.1.4.
如何做好用户会话的时间出rails 4.我没有使用任何gem进行身份验证.我手动进行身份验证.请问任何想法.我已经尝试过,但它无法正常工作.
在我的session_store.rb文件中,我补充道.
key: '_Matchimi_session',
expire_after: 1.minutes
我正在使用 javascript setInterval() 检查用户空闲时间并在自动注销之前显示弹出警报。但它不适用于多个选项卡(适用于单个选项卡)
以下是我的代码:
localStorage.removeItem("idleTimeValue");
var idleInterval = setInterval(timerIncrement, 1000);
function timerIncrement()
{
if(localStorage.getItem("idleTimeValue")) {
idleTime = parseInt(localStorage.getItem("idleTimeValue")) + 1; //increments idle time by one second
} else {
idleTime = 1;
}
localStorage.setItem("idleTimeValue", idleTime);
var timeDiff = 600;
var totTimeRemaining = timeDiff-idleTime;
if(totTimeRemaining > 0) {
$('#timeoutWindow').modal('show');
var minutes = Math.floor(totTimeRemaining / 60);
var seconds = totTimeRemaining - minutes * 60;
$('#timeoutRemainingTime').html(minutes+" minutes and "+seconds+" seconds");
} else {
window.location = httpHost+"/account/index/logout";
}
}
$(this).click(function (e)
{
localStorage.removeItem("idleTimeValue"); …Run Code Online (Sandbox Code Playgroud) 对于过期令牌,我有一个非常常见的情况,如下所示,Kindle 帮助我解决这个问题。
我的申请会话是 30 分钟,现在让我们说,我在一个页面上的时间超过 30 分钟,然后单击任何其他页面链接。所以它会重定向到登录页面。在这里,通过路由重定向,以便主动保护进入图片并检查令牌是否已过期,然后重定向到登录页面。到目前为止看起来不错。它工作正常。
但是,可以说,我在同一页面上有一个刷新链接(通过调用 new get http 请求刷新表记录),它只是刷新表记录(它不会刷新整个页面)。如果我在同一页面上超过 30 分钟,然后单击刷新按钮,如何检查令牌是否已过期。因为,在这个刷新场景中,路由没有被使用,所以它不会去主动保护来检查令牌是否过期。
您能否指导我如何处理这个用例。
提前致谢 !!!
我们目前正在验证Keycloak会话和令牌超时设置,以排除潜在的错误。我认为默认配置应该适合我们的用例。
我认为唯一令人担忧的值是“客户端登录超时”,我们将其设置为 1 分钟(如文档的屏幕截图所示)。这里的文档指出:客户端登录是客户端在 OIDC 中完成授权代码流程的最长时间。
我读了它,但我不明白......我猜文档副本是从这里的redhat 文档粘贴的(反之亦然),但那里也没有详细的解释。
所以我的问题实际上是:什么是“客户端登录超时”以及它的一个好的默认值是什么?对我来说,一个完美的答案就是从用户角度描述失败时的工作流程(例如用户在单击电子邮件验证链接之前喝了 1 分钟咖啡等)和/或进一步阅读的链接
session-timeout ×10
session ×3
java ×2
php ×2
ajax ×1
angular ×1
asp-classic ×1
asp.net ×1
grails ×1
javascript ×1
jsf-2 ×1
keep-alive ×1
keycloak ×1
primefaces ×1
servlets ×1
setinterval ×1
sql-server ×1
tabs ×1
tomcat ×1