ビットデータ型のIsLoggedInフィールドを含むすべてのユーザーアカウントの詳細を含むusersテーブルがあります。前のセッションが期限切れになる前にユーザーが新しいセッションを開始したときに、IsLoggedIn=1で古い行を更新したいと思います。これを達成するための最良の方法は何ですか?Triggerでこれを行うことは可能ですか?
前もって感謝します..
ビットデータ型のIsLoggedInフィールドを含むすべてのユーザーアカウントの詳細を含むusersテーブルがあります。前のセッションが期限切れになる前にユーザーが新しいセッションを開始したときに、IsLoggedIn=1で古い行を更新したいと思います。これを達成するための最良の方法は何ですか?Triggerでこれを行うことは可能ですか?
前もって感謝します..
確かに2つのことがあります。1)ユーザーIDと2)データベース内のセッションID。
これで、新しいセッション開始(session_Start)イベントが発生すると、ロジックを使用して1つのストアドプロシージャを呼び出すことができ、ロジックは次のようになります。
1)同じuserIDのレコードがない場合は、更新を行わないでください。2)同じuserIDを持つレコードがある場合は、IsLoggedIn=1ですべてを更新します。
このロジックをTRIGGERで拡張し、必要に応じてバンド化することもできます。
基本的に、session_Startイベントを追跡し、DB操作を実行する必要があります。
UIからのログインを処理する必要があるため、トリガーは推奨される解決策にはなりません。ログインが1つしかない場合は、それApplication_Start
を使用できます。複数のログインがある可能性がある場合は、それSession_Start
が望ましいです。そこから、データベースを呼び出して、それぞれのアクションを実行できます。
2つの違いについては、http://forums.asp.net/t/1230163.aspx/1?What + s + the + Difference + between + Application_Start + and + Session_Start + in + Global +aspx+で説明されています。