MVCアプリケーションでは、ユーザーがMachine1にログインしています。同じユーザーがMachine2にもログインしています。その時、私はMachine1からユーザーをログアウトしたいと思い、Machine1からセッションをクリアしたいと思います。これを達成する方法は?ユーザーのセッションを終了する方法
サンプルアプリケーション/コードを提供していただければ幸いです。
助けてください。前もって感謝します。 助けてください。前もって感謝します。
MVCアプリケーションでは、ユーザーがMachine1にログインしています。同じユーザーがMachine2にもログインしています。その時、私はMachine1からユーザーをログアウトしたいと思い、Machine1からセッションをクリアしたいと思います。これを達成する方法は?ユーザーのセッションを終了する方法
サンプルアプリケーション/コードを提供していただければ幸いです。
助けてください。前もって感謝します。 助けてください。前もって感謝します。
Session.Abandon()はセッションを破棄し、Session_OnEndイベントがトリガーされます。
Session.Clear()は、オブジェクトからすべての値(コンテンツ)を削除するだけです。同じキーを持つセッションはまだ生きています。
したがって、Session.Abandon()を使用すると、特定のセッションが失われ、ユーザーは新しいセッションキーを取得します。たとえば、ユーザーがログアウトしたときなどに使用できます。
ユーザーが同じセッションに残りたい場合(たとえば、彼が再ログインすることを望まない場合)、セッション固有のデータをすべてリセットするには、Session.Clear()を使用します。
まず、ユーザーが正常にログインした後、SessionId CurrentDateTimeとUserIdをデータベースの特別なテーブル、たとえば "LoginHistory"に保存することをお勧めします。次に、現在のユーザIDの「LoginHistory」から日時順に並べ
protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e);
プルトップ1行のGlobal.asaxの中で、現在のユーザのセッションIDと、データベースからセッションID値を比較します。
彼らが異なっている場合、現在のユーザーのログアウトあなたのログアウト・アクションで
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
使用これは、それはここでは
Session.Clear();
か、他
session["YourSessionKey"]=null;
を助けるかもしれいくつかのシナリオがありますどのメソッドがkillセッションに使用されるかを指定します。
Session.Remove(yoursession);
- >セッション状態コレクションから項目を削除します。
Session.RemoveAll()
- >セッションコレクションからすべてのアイテムを削除します。
Session.Clear()
- >セッションコレクションからすべてのアイテムを削除します。注:ClearとRemoveAllには違いはありません。 RemoveAll()はClear()を内部的に呼び出します。
Session.Abandon()
- >現在のセッションをキャンセルします。 CookiesSupportedがfalseの場合
あなたの条件によると、これはより良いでしょう
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
サインアウト方法は、CookieまたはURLからフォーム認証チケット情報が削除されます。 SignOutメソッドをRedirectToLoginPageメソッドと組み合わせて使用すると、あるユーザーをログアウトして別のユーザーがログインできるようになります。
参考にしてください LINK