我开发了一个具有多个.aspx页面的项目。几乎所有的网页都使用了很多会话。如果任何会话过期,应用程序将抛出错误。我不想在所有创建的会话的所有页面上检查会话过期。任何人都可以建议我如何解决这个问题。如何在多个页面上创建的任何会话的会话时间重定向到登录页面?
在此先感谢
我开发了一个具有多个.aspx页面的项目。几乎所有的网页都使用了很多会话。如果任何会话过期,应用程序将抛出错误。我不想在所有创建的会话的所有页面上检查会话过期。任何人都可以建议我如何解决这个问题。如何在多个页面上创建的任何会话的会话时间重定向到登录页面?
在此先感谢
从未使用过,但我认为可以用于此目的Global.asax
文件的Session_End(object sender, EventArgs e)
方法。
另一种解决方案可以检查项目的页面Site.Master
的会话状态。您的其他网页必须将此页面用作其主页面。
如果您未检查会话变量值是否实际存在,那可能会在各种情况下中断您的应用程序。如果您的应用程序被回收(或web.config更新),则可以在使用InProc(内存)时终止会话变量。除了在使用会话之前检查变量是否实际存在以外,没有更好的方法来处理所有场景。这是最佳做法。如果你不想要意外的崩溃,那么值得添加这个条件。
你可以使用session_end事件来重新填充所有的变量,但那不是打破证明。
不用于这个,但事件会在会话结束时触发,所以当你访问一个不存在的会话变量时,你可以优雅地处理它而不是ysod。 – Stuart