如果浏览器空闲或某段时间没有活动,则重定向到主页(MVC3)

时间:2013-06-04 03:43:20

标签: asp.net-mvc-3 redirect session-timeout

我有网络应用程序。如果浏览器闲置一段时间,我想将浏览器重定向到主页,比方说20分钟。但是,如果用户在该站点上处于活动状态,则可以说单击链接或阅读页面或上下滚动页面,由于用户没有空闲,页面将不会重定向到主页。会话超时20分钟始终是滑动或延长。我尝试配置web.config并在调试模式下运行应用程序,但没有任何反应。在闲置20分钟后,应用程序没有将我重定向到主页。请帮忙。这是我的web.config设置。

Web.Config

<system.web>
    <sessionState timeout="20" mode="InProc" />
.....

<authentication mode="Forms">
      <forms loginUrl="~/" slidingExpiration="true" timeout="20" />
    </authentication>

1 个答案:

答案 0 :(得分:2)

这些设置是服务器端设置。一旦提供了网页,服务器就完成了客户端正在做的事情 - 保存HTML,查看它,已经关闭了浏览器。

您需要一个客户端解决方案。一个非常基本的例子就是你可以在每个页面加载时运行的以下javascript代码。

setTimeout(function()
{
window.location.href = "/"; // you can use @Url.Content("~/") inside the quotes to also get the homepage url if you'd prefer...
}, 20 * 60 * 1000); // 20 mins * 60 sec/min * 1000 ms/sec.

此代码会在页面闲置20分钟后不加区别地将某人重定向到主页。

大多数解决方案都会为您提供一个JS模式对话框来重置时间并使会话保持活动状态(例如,通过对保持活动ping页面进行AJAX调用)。但这应该足以回答您的问题并让您开始选择最适合您的客户端解决方案。