这里已经提出了许多关于在执行Ajax请求时会话到期时该怎么做的问题。其中一个解决方法是在响应中放置一个标题,重定向到登录页面。
我的网站只执行第一页回发,然后是所有Ajax请求,这使得会话在确定的时间内到期,但是有可能更新Ajax请求中的会话时间(在ASP处理程序中参加请求),以便会话到期但只有当我通过超时时间而没有向服务器发出任何请求时才会过期?
答案 0 :(得分:1)
您可以自己实现KeepAlive SessionObserver(JavaScript)并跟踪会话超时。这样,您可以捕获空闲用户的SessionTimeouts,使用消息和其他有用的东西重定向它们。
除此之外,在发出Ajax请求时,会话应保持活动状态。当相应的WebService设置了EnableSession属性时,它们可能只保持活动状态。你也可以尝试一下。
例如,
[WebMethod( EnableSession = true )]
public string WebServiceMethod(){ return "I'm session aware.";}