2010-10-22 107 views
0

在此处,当执行Ajax请求时会话过期时,如何处理此问题已有很多问题。其中一个解决方法是在响应中放置一个标题,以便重定向到登录页面。ASP.NET会话在Ajax请求中过期

我的站点只做第一页回发,然后它是所有的Ajax请求,这使得会话在确定的时间到期,但是有可能更新Ajax请求中的会话timout(在ASP处理程序中出席请求),以便会话过期但只有当我通过超时时间而根本不向服务器发出任何请求时?

+0

我不知道我是否正确地理解你的问题。你说过,“在AJAX请求中更新会话超时”。通常情况下,你不需要明确地做。即使请求是AJAX请求,页面生命周期也不会改变。模块/处理程序的工作方式与他们应该的相同。因此,您的会话相关信息将自动更新。 – 2010-10-22 09:02:27

+0

好吧,就像ovm说的那样,Session应该由Ajax请求保持活跃状态​​。我认为,在做请求时,服务器请求将会发生,但页面生命周期不会发生。谢谢 – Soulbe 2010-10-22 10:22:36

回答

1

您可以实现KeepAlive SessionObserver(JavaScript)并自行跟踪会话超时。这样你就可以捕获空闲用户的SessionTimeouts,并用消息和其他有用的东西重定向它们。

除此之外,发出Ajax请求时会话应保持活动状态。当相应的WebService设置了EnableSession属性时,它们可能只会保持活动状态。你也可以尝试。

例如,

[WebMethod(EnableSession = true)] 
public string WebServiceMethod(){ return "I'm session aware.";}