1

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

网络配置

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

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

1 回答 1

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 调用)。但这应该足以回答您的问题并让您开始选择最适合您的客户端解决方案。

于 2013-06-04T03:48:14.673 回答