0

IMはMVCが初めてですが、これは私がしなければならないことです:

  1. 1 か所 (PC 1) でアプリにログインする人
  2. 別の PC に移動し、再度ログインします (PC 1 からログオフせずに)
  3. 誰かが PC 1 を使おうとする
  4. PC 1 ログオフ
  5. エラーページに「あなたはログに記録されています...」と表示されます

4 時までは問題ありませんが、アクション フィルターに次のコードがあります。

                    filterContext.HttpContext.Items["errorMsg"] = Resources.Account.Res_String.SessionDuplica; //error msg and flag                       
                    filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary(new
                                            {
                                                 controller = "Account",
                                                 action = "LogOff"                                                    
                                            }));

次に、AccountController -> LogOff で、次のようにします。

        FormsAuthentication.SignOut();


        if (HttpContext.Items["errorMsg"] == null)//normal logOff?
        {
            return RedirectToAction("LogOn", "Account");
        }
        else//induced logOff
        {
            ViewBag.error = HttpContext.Items["errorMsg"];
            return View();//LogOff view
        }

ただし、if(HttpContext.Items["errorMsg"] == null= は常に true

なぜ知っていますか?またはこれを行う別の方法は?

アクションフィルターからリダイレクトされたメソッドに文字列を送信するだけです

4

1 に答える 1