问题描述
在.NET中,当session超时之后会出现一些意想不到的问题,所以想大家帮个忙,出个注意,看如何比较妥善地解决这个问题问题描述:.NET环境中,session超时之后,会导致一些程序上的漏洞目前可以想到的解决办法有1、加长session超时的时间在WEB.CONFIG中<sessionStatemode="InProc"stateConnectionString="tcpip=127.0.0.1:42424"sqlConnectionString="datasource=127.0.0.1;Trusted_Connection=yes"cookieless="false"timeout="240"/>但:不能彻底解决问题2、比较土的办法当Session超时后,只要用户刷新页面或是提交到后台就会检查session是否有效,如果已失效就提示session超时,然后跳转到login.aspx页面重新登录。但:比较麻烦,每个页面都要加上这个判断3、网上的办法在Global.asax中的Session_End()中加入判断语句if(Session["UserType"]==null){Response.Write("<script>alert('超时!请重新登录')</script>");Response.Write("<scriptlanguage=javascript>window.parent.location='../Login/RegisterLogin.aspx'</script>");}但:程序运行之后,没有起到作用啊!所以请大家帮帮忙,看如何处理比较好。我想的理想效果是要求要到超时时间后,前台浏览器自动弹出一个对话框提醒用户session超时了,然后点击“确定”之后自动转向首页。
解决方案
解决方案二:
用脚本吧 比如session=30脚步每30分执行一次 读取session的值如果空弹出一个对话框提醒用户session超时了,然后点击“确定”之后自动转向首页
解决方案三:
functiondomain(){//读取session//如果空弹出一个对话框提醒用户session超时了,然后点击“确定”之后自动转向首页}varInt;Int=setInterval("domain()",1800);//其中100为时间,1秒=1000.是这样的?你给的分太少了 抠门!!
解决方案四:
比较好的做法是自己做个回调,每过一段时间去提交一次server,这样就不会session过期了