ASP(经典)/IIIS 7.5-您可以在不刷新会话的情况下检查会话是否超时吗
ASP(classic)/IIS 7.5 - Can you check if Session has timed out without refreshing the session?
我正在开发一个运行在IIS 7.5上的ASP经典应用程序。如果用户的会话超时,而他们不必与机器交互(例如,如果他们离开机器并忘记了这件事,我希望这个弹出窗口在他们回来时等待他们(,我会尝试在用户的窗口上弹出一个覆盖。
我已经实现了一个后台setInverval
函数,该函数使用jQuery向我的服务器上名为ajax-check-session.asp
的页面发送ajax请求。
ajax-check-session.asp
只检查会话是否仍然存在,而Response.Write
分别是1
或0
。
会话检查有效,我可以从另一个选项卡注销,弹出窗口将显示在使用该会话的任何其他选项卡中。但是,如果我只是让选项卡保持20分钟(Session.Timeout
值(,则弹出窗口永远不会出现。我假设这是因为对ajax-check-session.asp
的ajax请求每3秒刷新一次会话,这样它就永远不会超时。
这是ajax-check-session.asp
:的代码
<%Option Explicit
Response.Write LoggedIn()
Function LoggedIn
Dim strUsername
strUsername = Session("username")
If strUsername = "" Or isNull(strUsername) Then
LoggedIn = 0
Else
LoggedIn = 1
End If
End Function
%>
有人知道每3秒访问这个页面是否是,事实上,这就是我的会话不会超时的原因吗?如果是,你有什么建议来替代技术来实现我的目标,或者修复我的代码/服务器,使这个页面不刷新会话吗?
我曾尝试在此页面上使用<%@EnableSessionState=False%>
,但我想不出一种方法来检查会话是否已过期,并将其设置为false,因为这似乎会完全取消对Session
的访问。
当您调用Session("username")
时,实际上您正在刷新Session Object
本身,这是正确的,因为您永远不会看到弹出窗口。
另一种选择是使用Global.ASA
文件来实现函数Session_OnStart和Session_OnSend,以在数据库中创建SessionID
和date/time
时存储它们,并且脚本可以检查记录。
您可以使用这两个函数从表中插入和删除会话信息。
全球。Asa Sintax(MSDN(
- PHP会话页面刷新不起作用
- Node.js:每次刷新/访问时都会有新的会话
- 如何在Ruby on Rails会话过期时重新加载或刷新页面
- 当用户刷新页面时,如何在单独的服务器中处理socket.io上的会话
- 为什么php页面刷新发布会话变量
- 在 ajax 调用期间刷新页面正在破坏 php 会话
- JQuery ,replaceWith() 从 iframe 写入会话后不起作用,除非页面刷新
- 避免页面刷新并向 JavaScript 会话添加值
- 跨域刷新后会清除会话值
- 有没有办法让Javascript在点击刷新后重定向页面(会话已经过期)
- 如何在点击事件后更改会话值,以便页面刷新不会重置Meteor上的会话
- 强制刷新Facebook会话
- 在angular js中刷新页面时保持会话
- 在刷新页面之前不会设置会话属性
- “会话在浏览器刷新时过期”按钮
- 从服务器部分刷新一个R会话
- 刷新页面后会话丢失
- 显示会话var而不刷新页面
- 如何删除所有会话存储,其关键字是一些字符"abc"当页面刷新时
- ASP(经典)/IIIS 7.5-您可以在不刷新会话的情况下检查会话是否超时吗