超时session没生效(session设置会话超时时间)

http://www.itjxue.com  2023-01-24 16:53  来源:未知  点击次数: 

(C#)在Web.config中设置Session的超时时间没有反应,请教!有点急,先谢谢了!

IIS为了保护服务器,有一个“回收”的概念

启动IIS管理器-应用程序池-右键-属性-回收选项卡,有一项是默认就起作用的,就是第一项:“回收工作进程(分钟)”默认值1740分钟,大约29个小时。他是什么意思呢?我个人理解:在session.timeout之后再过1740分钟自动把所有仍在保持的session清除。这个值最大可设为4000000,大概是2700多天!我直接取消了,不用他自动回收!问题终于解决。

另外这个属性对话框中还有其它几项:第二项应该是连接的用户超过了一定数目回收。第三项是到某一个时间就自动回收。在“性能”选项卡中“在空闲此时间段后关闭工作进程”,这里就是设置IIS默认session.timeout时间的地方了。默认值20分钟,这里同样最大值可设为4000000,和在ASP页中设置

session.timeout最大值为1440不同。在这里设置超过大于1440的值是否起作用,我没作测试,我想应该是可以的。那为什么在ASP页中session.timeout的值最大只能是1440在IIS的属性中却能设的那么大呢?应该是属于一种保护机制:ASP页的session.timeout的值哪个用户都可以设,IIS里却只有管理员可以设,两者的权限不同,所以设置的范围就不同了。

我想上面的回答对你应该有帮助

若帮助大您的话,请及时采纳哈

Java 设置session时间超时,一直没有效果,具体该怎么操作

session-config

web.xml中这么配置:

session-config包含一个子元素session-timeout.定义web站台中的session参数.

session-timeout分钟/session-timeout

定义这个web站台所有session的有效期限.单位为分钟.

/session-config

范例:

session-config

session-timeout20/session-timeout

/session-config

如果你都配置了还是不起作用,就直接在使用session时就设置有效时间

thinkphp session 过期时间配置不生效是怎么回事?

你搞错了,cookies可以设置过期时间,

session可以unset或session_destroy全部删除.

session你关闭浏览器就没了,session过期时间在服务器配置文件时配置

为什么config里设置session的timeout之后session总不失效

你关闭浏览器,应该可以使 session失效。指关闭本页面,如果还有其它页面,那么 session还是没有失效。只有当超时时间到了,才失效。缺省是30分钟。你可以更改,再web.xml中设置 5 //分 或者,创建session是直接设置 session.setMaxInactiveInte...

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作

在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session

具体设置的方法有三种:

1.在web容器中设置(以tomcat为例)

在tomcat-7.0\conf\web.xml中设置,以下是tomcat7.0中默认配置:

123

session-configsession-timeout30/session-timeout/session-config

tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间

这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果在调试程序,应该是修改服务器端时间来测试,而不是客户端

2.在工程的web.xml中设置

!--时间单位为分钟--

123

session-configsession-timeout15/session-timeout/session-config

这里的15是指15分钟失效

3.通过java代码设置

session.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,session将失效

三种方式优先等级:1 2 3

在一般系统中,也可能需要在session失效后做一些操作:

1.控制用户数,当session失效后,系统的用户数减少一个,控制用户数量在一定范围内,确保系统的性能

2.控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当session失效后,就可以不同提示,直接登录

那么如何在session失效后,进行一系列的操作呢?

这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序就可以了

监听器类为:HttpSessionListener类,有sessionCreated和sessionDestroyed两个方法

自己可以继承这个类,然后分别实现

sessionCreated指在session创建时执行的方法

sessionDestroyed指在session失效时执行的方法

例子:

1 public class OnlineUserListener implements HttpSessionListener{ 2 ? ? public void sessionCreated(HttpSessionEvent event){ 3 ? ? ? ? HttpSession session=event.getSession; 4 ? ? ? ? String id=session.getId()+session.getCreationTime(); 5 ? ? ? ? SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户 6 ?? ?} 7 ? ? ?8 ? ? public void sessionDestroyed(HttpSessionEvent event){ 9 ? ? ? ? HttpSession session=event.getSession;10 ? ? ? ? String id=session.getId()+session.getCreationTime();11 ? ? ? ? synchronized(this){12 ? ? ? ? ? ? SummerConstant.USERNum--;//用户数减-13 ? ? ? ? ? ? SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map14 ?? ? ? ?}15 ?? ?}16 }

然后只需要把这个监听器在web.xml中声明就可以了

listener

listener-classcom.demo.OnlineUserListener/listener-class

/listener

(责任编辑:IT教学网)

更多

相关安全基础文章