我似乎无法找到一个关于如何在会话超时时从ajax请求发回一些数据的好例子/答案.它发回登录页面HTML,我想要发送json或我可以拦截的状态代码.
我的应用程序有问题:我的应用程序有很多表单,需要大约1小时才能完成此表单,因为表单是动态的(可以添加其他表单).问题是:我的Web服务器的会话是24分钟.当用户填写表单时,他们花了很多时间并且会话超时,因为服务器识别出用户处于非活动状态.当表单提交,大多数数据丢失并且用户返回登录页面时,这非常烦人.我尝试使用此代码在10小时内使会话过期:
ini_set('session.gc_maxlifetime', '36000');
Run Code Online (Sandbox Code Playgroud)
但它不能在我的服务器上工作,我的服务器可能会阻止ini_set()功能吗?
那么,我该怎么做才能解决这个问题呢?我可以阻止会话超时,以便会话可以扩展到10小时吗?或者我可以禁用会话到期吗?
谢谢
我Web.Config在ASP.NET MVC 2项目中配置了我的文件:
<sessionState mode="InProc" timeout="1"/>
Run Code Online (Sandbox Code Playgroud)
并添加以下内容Global.asax.cs:
protected void Session_End(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Session_End");
}
protected void Session_Start(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Session_Start");
}
Run Code Online (Sandbox Code Playgroud)
Session_Start()在新用户访问网站时调用.我希望Session_End()在1分钟的空闲时间之后被召唤,但事实并非如此.我错过了什么吗?
我已经使用javascript实现了会话超时警告,该警告只是询问用户是否要扩展其会话或注销.问题在于,这适用于内部网门户,其中高级用户通常会同时打开多个浏览器窗口或选项卡到应用程序.目前,系统会提示他们即将从每个浏览器窗口注销.如何让代码更智能地检测到他们正在使用其他浏览器会话?
我知道在SO网站上多次询问过这个问题.但是,我已经读过这个,这个,这个,这个,这个和这个,还有更多.他们都没有工作.我还尝试更改会话文件位置和其他我现在不记得的事情.
我的设置:
一:config.inc.php文件:
<?php
$cfg['LoginCookieValidity'] = 3600 * 24; // http://docs.phpmyadmin.net/en/latest/config.html#cfg_LoginCookieValidity
Run Code Online (Sandbox Code Playgroud)
这显示在phpMyAdmin设置中:

二:.htaccess文件:
php_value session.gc_maxlifetime 86400
Run Code Online (Sandbox Code Playgroud)
三:phpinfo.php来自phpMyAdmin根目录的文件显示:

四:服务器(uname -a):
Linux ubuntu-13 3.11.0-26-generic #45-Ubuntu SMP Tue Jul 15 04:02:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以增加phpMyAdmin会话超时?
我在我的网站上使用登录功能与会话.无论用户是否已注销,我的本次会议都会在几分钟后过期.现在我想要的是会话应该只在用户注销时才会过期.如果用户没有注销他的帐户然后在2-3天后回来,那么他应该出现登录.
我已经找到了一些例子,他们已经增加了一个会话到期的时间,但我希望它只应该在用户退出事件时到期而不管他注销的时间.
我怎样才能做到这一点??
编辑:
session_cache_expire(0);
session_start();
Run Code Online (Sandbox Code Playgroud)
这是写这种方式吗?
我正在尝试写我的应用程序的一部分,以便它优雅地处理会话超时,但我似乎无法控制超时发生前的持续时间测试.
我正在使用JBoss 5.1,我正在修改session-config我的web描述符(web.xml),以便会话在一分钟后超时(仅用于测试)
<session-config>
<session-timeout>1</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)
但是在通过登录创建会话后,它永远不会超时.没有我给它的设置会导致超时.
在tomcat环境中,我没有遇到过这个问题.有没有人遇到过与JBoss类似的问题?
C#MVC4项目:我想在会话到期时重定向到特定页面.
经过一些研究,我Global.asax在我的项目中添加了以下代码:
protected void Session_End(object sender, EventArgs e)
{
Response.Redirect("Home/Index");
}
Run Code Online (Sandbox Code Playgroud)
当会话到期时,它会在该行Response.Redirect("Home/Index");说出异常The response is not available in this context
这有什么不对?
我的应用程序目前使用Spring Session和Redis作为后端.
我搜索了Spring Session 的官方文档,但是在使用该模块时无法找到默认会话超时.
此外,我不知道如何在必要时更改默认超时.
有人可以建议吗?
我正在收到用户的报告和投诉,他们将使用屏幕并在下次请求时立即返回登录屏幕.它不会一直发生,而是随机发生.
我正在使用CakePHP和Auth组件,除了这个问题之外,它似乎运行良好
我在Cake论坛上得到了一些反馈,这有时是由重置会话的404请求引起的,即如果你有一个损坏的图像链接或缺少的favicon文件.我打开了firebug并且没有失败的请求,因此我将此作为一种可能性进行了排除,但是用户偶尔会被注销.这似乎发生在浏览器和操作系统之间.
下面是我的配置设置的摘要:Security.level = high Session.timeout = 1200 //这意味着我的实际超时应该是12,000秒Session.save = php
我真的不知道造成这个问题的原因......
session-timeout ×10
session ×6
php ×4
ajax ×1
asp.net-mvc ×1
browser-tab ×1
cakephp ×1
javascript ×1
jboss ×1
phpmyadmin ×1
redis ×1
spring-mvc ×1
web-config ×1