【问题标题】:ASP.NET session expires in Ajax requestASP.NET 会话在 Ajax 请求中过期
【发布时间】:2010-10-22 08:48:54
【问题描述】:

这里已经提出了很多关于在执行 Ajax 请求时会话过期时该怎么做的问题。一种解决方法是在响应中放置一个标头,以重定向到登录页面。

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

【问题讨论】:

  • 我不确定我是否正确理解了您的问题。您说,“更新 AJAX 请求中的会话超时”。通常,您不需要明确地执行此操作。即使请求是 AJAX 请求,页面生命周期也不会发生任何变化。模块/处理程序将按照应有的方式工作。因此,您的会话相关信息将自动更新。
  • 好的,就像 ovm 所说的,Ajax 请求应该使 Session 保持活动状态。我认为在进行请求时,会发出服务器请求,但不会发生页面生命周期。谢谢

标签: .net ajax session-timeout


【解决方案1】:

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

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

例如,

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2016-01-20
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多