バックグラウンド:
仕事に戻って、セッションとフォーム認証のタイムアウトのデフォルトのスライド有効期限を使用する Web フォーム アプリに取り組んでいます。私の仕事は、ユーザーの非アクティブを追跡し、必要に応じて、セッションの有効期限、タイマー、およびセッションのタイムアウトを更新するためのボタンに関する警告を含むモーダル ウィンドウを表示することです (フォーム認証のタイムアウトも更新されます)。Button はマスター ページのイベントに関連付けられており、ボディは空です。(私は他の解決策を知っています)。
部分的に機能するソリューション:
私のアプローチは、マスター ページの Page_PreRenderメソッドを使用して Session と FormsAuthentication のタイムアウト値を取得し、それらを比較して、クライアントのブラウザーに小さい値 (または任意の値) を (他の必要なデータと共に) 渡すことでした。ブラウザでは、モーダルウィンドウのある特定の瞬間にタイマーで警告を表示し、すべて意図したとおりに機能します...つまり、ユーザーが何もしていないときです。
問題:
私たちのアプリには、更新パネルのあるページがたくさんあります。これらの更新パネルは、セッションに保存されているデータとやり取りして操作するために使用されます。ユーザーがこれらの更新パネルのいずれかで何かを行うたびに、セッション タイムアウトがスライド (再起動) します。(現実世界では) クライアント上でそれらを追跡することはできません。サーバー上でセッションの有効期限を追跡する方法が必要です。
やりたくないこと
すべてのページ、すべてのグリッドビュー、すべてのイメージボタンなどを調べて、クライアントイベントをバインドしてユーザーアクションを追跡したくありません。もっと欲しい...可能であれば、一般的で保守可能なソリューション。
私の考え:
有効期限が切れる前にセッションまたはフォーム認証の残り時間を追跡/確認できるようにしたい、またはそれらの値がリセットされた場合に通知されるようにしたいと考えています。そうすれば、モーダルウィンドウを警告付きで表示する必要がある瞬間について、クライアントに初期データを取得できます。その時点で、その時間が正しいかどうかを最初にサーバーに確認できるようにしたいと思います(おおよそ)または、クライアントの JavaScript データを更新し、セッションの有効期限が更新されてから警告ウィンドウが表示されるまでの時間を延長する必要がある場合...そして、ユーザー要求の傍受とフィルタリングについてはどうですか? それは役に立ちますか?