C#.net webform,避免从会话超时中丢失数据

MAW*_*656 1 c# session webforms forms-authentication session-state

我有一个用户在我的Intranet网页上抱怨频繁超时.在寻找解决方案时,我发现了这篇文章:

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

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

有谁知道如何在我的应用程序中的特定页面上完成此操作(并非所有这些)?

aro*_*eer 5

它不一定是微不足道的,但你可以添加一个ajax组件,偶尔会调用一个页面来保持会话的活跃性.这样,您可以延长所需的任何特定页面的会话,而不会影响整个应用程序.

编辑

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

protected void Application_PostAuthenticateRequest (object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)

global.asax.cs文件中的事件处理程序.这是在表单身份验证重定向发生之前调用的,此时表单数据可供您的应用程序使用,因此您可以将其保留到任何必要的介质,直到您的用户再次进行身份验证.另外,如果你检查一下

((HttpApplication)sender).Request.Path
Run Code Online (Sandbox Code Playgroud)

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