IMはMVCが初めてですが、これは私がしなければならないことです:
- 1 か所 (PC 1) でアプリにログインする人
- 別の PC に移動し、再度ログインします (PC 1 からログオフせずに)
- 誰かが PC 1 を使おうとする
- PC 1 ログオフ
- エラーページに「あなたはログに記録されています...」と表示されます
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
なぜ知っていますか?またはこれを行う別の方法は?
アクションフィルターからリダイレクトされたメソッドに文字列を送信するだけです