Skip to main content
 首页 » 编程设计

C#.net webform,避免 session 超时丢失数据

2024年02月03日32softidea

我有一个用户提示我的 Intranet 网页经常超时。在寻找解决方案时,我发现了这篇文章:

http://forums.asp.net/t/152925.aspx?PageIndex=1

发帖人建议拦截重定向到登录页面的地方,将数据提交到数据库,然后重新授权用户(在他们不知情的情况下)或重定向到登录页面。我的目标是避免用户在表单中输入数据,走开,然后回来提交,只是被告知他们必须再次登录的情况(这很好,如果数据仍然存在并且用户被正确发送回到原来的网络表单)。

有谁知道我如何在我的应用程序的特定页面(不是所有页面)上完成此操作?

请您参考如下方法:

这不一定是微不足道的,但您可以添加一个 ajax 组件,偶尔调用页面以保持 session 有效。这样您就可以延长任何特定页面的 session ,而不会影响整个应用程序。

编辑

如果真的想让session过期,但保留表单数据,可以实现

protected void Application_PostAuthenticateRequest (object sender, EventArgs e) 

global.asax.cs 文件中的事件处理程序。这是在表单例份验证重定向发生之前调用的,此时表单数据可供您的应用程序使用,因此您可以将其保存到任何必要的媒体,直到您的用户再次通过身份验证。此外,如果您检查

((HttpApplication)sender).Request.Path 

属性它会告诉你请求了哪个页面。