0

少しグーグルした後、ASP.NETでオンラインユーザーを取得する方法に関するヒントをいくつか見つけました。しかし、私はメンバーシップのために自分のクラスを使用しています。

私が見つけた情報は次のとおりです。

  1. ユーザーがログインするときに、ユーザーのsessionIdをデータベースに記録します
  2. セッションがタイムアウトしたらログアウトします

これについてのあなたのアドバイスは何ですか?

4

2 に答える 2

1

この素晴らしい記事を見つけました

希望は誰かを助ける

于 2009-01-17T23:44:19.750 に答える
0

このアプローチを使用して、ユーザーが個別の同時セッションでデータをWebサービスにアップロードするときに、タイムアウトが発生したケースの90%をキャッチし、その場でユーザーに警告できるようにします。

次の理由により、すべてのケースを把握できるわけではありません。

  • global.asaxのセッションタイムアウトイベントハンドラーは、有効期限が発生した瞬間に確実に呼び出されません(IIRC)
  • その間にユーザーがブラウザウィンドウを閉じた可能性があります。

私が知っている2つの一般的なアプローチは次のとおりです。

  • ユーザーアクションがあると、usersテーブルのLastActionTimeが更新されます。この値+20分(またはセッションタイムアウト値)を使用すると、誰がログインしているかをかなり正確に示すことができます。
  • 数秒ごとに更新される小さなAJAXパネル(前のオプションにリンクされています)。
于 2009-01-17T22:31:17.183 に答える