【问题标题】:Redirecting to another page from Session_end in global.asax从 global.asax 中的 Session_end 重定向到另一个页面
【发布时间】:2013-04-01 07:32:28
【问题描述】:

我需要在会话超时时将用户重定向到登录页面。 global.asax 中 Session_End 方法的问题是:

  1. 不支持 Response.Redirect 或 Server.Transfer
  2. 任何使用 HttpContext.Current.Response 的尝试都会导致“对象引用未设置为对象的实例”错误
第二个错误是可以理解的,因为会话超时,当前会话将被终止并设置为空。
我想知道的是是否可以将用户直接(特别是)从 session_end 重定向到另一个页面。有些方法有效(不使用 session_end 方法),但它们都需要向服务器发出请求(例如刷新,我不想要)。我可以在不使用 javascript 的情况下做到这一点吗?(更重要的是,我应该吗?)
提前致谢!

【问题讨论】:

    标签: c# .net global-asax sessionend


    【解决方案1】:

    Session_End 不是直接在服务器上提出的,没有用户的任何交互吗?

    当我转到您的页面(并开始会话),关闭浏览器窗口并且不再返回时会发生什么?那么可以理解,HttpContext.Current.Response 为空。

    【讨论】:

    • 是的,它是直接在服务器上提出的。我提到的解决方案不是使用 Session_end 实现的。我也应该说明这一点。为响应您的第二个查询,应用程序会在执行此操作时再次重新启动。
    • 那么也许我会通过在客户端脚本中使用长计时器来解决这个问题,例如,如果您的会话超时为 20 分钟,我会在客户端脚本中安排事件 20 分钟后刷新页面,应该指向登录页面。
    猜你喜欢
    • 2013-09-05
    • 2016-12-14
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2020-01-30
    • 2018-12-26
    相关资源
    最近更新 更多