Asp.net 在会话超时时关闭所有网页

Asp.net 在会话超时时关闭所有网页,asp.net,webbrowser-control,session-timeout,Asp.net,Webbrowser Control,Session Timeout,当asp.net应用程序中的会话超时时,我们需要关闭用户已打开的所有网页 每个页面都有注销链接。当用户单击该链接时,主页将重定向到该页面 在这种情况下,还需要关闭其他打开的页面 我们怎样才能做到这一点 对于所有页面: AJAX回调服务器以检查会话是否已过期 从AJAX解析结果 若会话结束,则关闭窗口或重定向到注销页面 对于所有页面: AJAX回调服务器以检查会话是否已过期 从AJAX解析结果 若会话结束,则关闭窗口或重定向到注销页面 再想想。。。我们可以使用@TheppDeveloper所说的,

当asp.net应用程序中的会话超时时,我们需要关闭用户已打开的所有网页

每个页面都有注销链接。当用户单击该链接时,主页将重定向到该页面

在这种情况下,还需要关闭其他打开的页面

我们怎样才能做到这一点

对于所有页面:

  • AJAX回调服务器以检查会话是否已过期
  • 从AJAX解析结果
  • 若会话结束,则关闭窗口或重定向到注销页面
  • 对于所有页面:

  • AJAX回调服务器以检查会话是否已过期
  • 从AJAX解析结果
  • 若会话结束,则关闭窗口或重定向到注销页面

  • 再想想。。。我们可以使用@TheppDeveloper所说的,特别是当用户正式退出时。。。(如单击“注销”按钮)在正式注销后一次。。。可以使用这种Ajax回调,因为会话将是有效的,但不会有任何用户。。。使用此功能,我们可以向页面发送信号,然后关闭浏览器窗口。。。我们可以使用@TheppDeveloper所说的,特别是当用户正式退出时。。。(如单击“注销”按钮)在正式注销后一次。。。可以使用这种Ajax回调,因为会话将是有效的,但不会有任何用户。。。使用它,我们可以向页面发送信号并关闭浏览器窗口

    ,正如Razzie评论的那样,对同一web应用程序执行AJAX回调将使会话保持活动状态。使用web服务也不能解决问题

    此解决方案可避免保持会话处于活动状态:

    • 将每个会话存储在数据库中。这可以在
      Global.asax中的
      Session\u Start
      事件中完成,也可以在登录后完成
    • Global.asax
      文件的
      Session\u End
      事件中或注销后,从数据库中删除超时会话
    • 定期对不同的web应用程序(例如,在子域上运行的web)执行AJAX回调,以检查数据库中是否仍然存在会话

    我建议您使用SessionID来标识会话。

    正如Razzie所评论的,对同一web应用程序执行AJAX回调将使会话保持活动状态。使用web服务也不能解决问题

    此解决方案可避免保持会话处于活动状态:

    • 将每个会话存储在数据库中。这可以在
      Global.asax中的
      Session\u Start
      事件中完成,也可以在登录后完成
    • Global.asax
      文件的
      Session\u End
      事件中或注销后,从数据库中删除超时会话
    • 定期对不同的web应用程序(例如,在子域上运行的web)执行AJAX回调,以检查数据库中是否仍然存在会话

    我建议您使用SessionID来识别会话。

    我认为您可以重定向到主页您无法关闭所有页面问题是用户认为他们的会话结束了。因此,将其他打开的页面与数据保持原样。这里我们想知道数据安全问题。我想你可以重定向到你的主页。你不能关闭所有页面。问题是用户认为他们的会话结束了。因此,将其他打开的页面与数据保持原样。在这里,我们想知道数据安全性。对服务器的AJAX调用不会使会话保持活动状态,特别是如果它检查当前会话的话?我同意Razzie。。。但是如果AJAX调用了一个Web服务。。。我是网络服务的新手。。webservice调用是否会在原始页面调用的同一会话中运行??然后可以手动处理会话终止,以补充ASP.NET session termination.AFAIK,您只能使用
    WebMethod
    属性在web方法上设置
    EnableSession
    。如果启用它,会话将保持活动状态。如果禁用它,您就不知道会话是否处于活动状态…对服务器的AJAX调用是否会保持会话处于活动状态,尤其是在它检查当前会话时?我同意Razzie。。。但是如果AJAX调用了一个Web服务。。。我是网络服务的新手。。webservice调用是否会在原始页面调用的同一会话中运行??然后可以手动处理会话终止,以补充ASP.NET session termination.AFAIK,您只能使用
    WebMethod
    属性在web方法上设置
    EnableSession
    。如果启用它,会话将保持活动状态。如果禁用它,则不知道会话是否处于活动状态。。。