2008-11-02 26 views
1

下面是一个问题,我问我的博客上几个月回来,但我还没有得到正确的答案。然后,前两天有人问我,如果我有答案,所以我决定把这个问题复制在这儿,它会得到通过愿以和开发人员能够更加暴露。不管怎么说,这里去...如何在Aspx页面上使用AJAX Web控件时处理会话超时?


我一直在努力,它利用AJAX Control Toolkit控制来扩展应用程序的可用性的ASP.NET Web应用程序。此外,该应用程序是一个严格的业务应用程序,需要安全性,包括加密,身份验证和授权。 HTTP会话是一个InProc模式会话,默认时间为20分钟。

当然,这意味着,如果用户离开网页上他的浏览器时间超过20分钟的会话已过期,任何后回服务器将浏览器重定向到登录页面。但是,如果页面,例如,包含来自AJAX Control ToolkitAutoCompleteExtender控制,用户可以回到自己的浏览器,并开始使用扩展的功能,要求现场回调的背后,却会发现,控制根本不起作用 - 没有错误不重定向到登录页面!?


就像我说的,我没有一个解决方案,因此我最终把SessionExpiredMonitor(杜林Ziffer)我所有的页面(在我的母版),这将导致在每一页自动签署了19个分钟,然后将浏览器重定向到登录页面。但是,我不认为这是一个解决方案,所以如果你能弄清楚这一点,请让我知道。非常感谢你。

回答

1

在服务器端则可以检测到会话过期,并返回一个强类型的异常。在浏览器端,您可以专门检测该错误并只刷新页面。这假设当您的页面回复刷新时,您的应用程序检测到过期的会话并让他们再次登录。

0

这有什么错将用户重定向到登录页面后,他居然会过期?从用户的角度来看,我确实更喜欢这样做,而不是通知过期的会话,填写的方式太长,实际上注意到提交到期。 它至少是一个用户友好的解决方案。

0

我认为自动重定向是最好的解决方案,主要是出于明显的安全原因。

你可以进一步警告他们闲置的18mns后显示警告用户其会话将在1分钟内到期,提供通过点击一个按钮,接着调用后端延伸会话的方式扩展功能页面来恢复会话。

在会话过期之前,页面会将用户重定向到登录页面,您可以保存用户/页面/帐户的状态,以便当他们重新登录时可以将其重定向回上次查看的页面。