1

私はウェブアプリケーションを持っています。ブラウザが一定時間アイドル状態になった場合、ブラウザをホームページにリダイレクトしたいと思います.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>
4

1 に答える 1

2

これらの設定はサーバー側の設定です。Web ページが提供されると、サーバーはクライアントが Web ページで何をしているかを処理します。つまり、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 分間アイドル状態が続くと、誰かを無差別にホームページにリダイレクトします。

pingほとんどのソリューションでは、時間をリセットしてセッションを維持するための JS モーダル ダイアログが提供されます (たとえば、キープ アライブ ページへの AJAX 呼び出しを行うことによって)。しかし、これはあなたの質問に答えて、あなたに最適なクライアント側のソリューションを選ぶのに十分なはずです.

于 2013-06-04T03:48:14.673 に答える