0

Windows 認証を使用する ASP.Net MVC 3 イントラネット ベースの Web アプリケーションがあります。ユーザーがアプリを起動するたびに、ユーザー固有のデータをデータベースに保存する必要があります (現在のユーザー セッションのみ)。

ユーザーがアプリケーションを終了したときに、この一時データをデータベースから削除するための完全な証明方法が必要です (つまり、30 分以上非アクティブだった、ネットワーク障害などが原因でブラウザー ウィンドウを閉じた)。

ユーザーの最後のアクティビティ時間を定期的にデータベースに記録するためのレイアウト ページに JavaScript を含め、データベースをチェックして、アクティビティ時間が定義された時間よりも長い場合にユーザーの一時データを削除できるスケジューラを構築することを考えています。しきい値。

これを行うためのより良い、より簡単な方法があれば提案してください。

4

1 に答える 1

1

ユーザーがログアウトせずにウィンドウを閉じた後でも、問題は確実にクリーンアップされています。同様のソリューションを使用して、スケジュールされたジョブが期限切れのセッションを探し、関連するデータを削除します。ただし、期限切れのソリューションを見つける方法はもう少し単純です。

ユーザー エンティティAuthenticateRequestのプロパティを更新する HttpModule があります。LastActiveOn特定の種類のリクエスト (AJAX ポーリング、画像や静的リソースへのリクエストなど) を除外します。

于 2012-06-19T10:00:14.143 に答える