我是 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
有谁知道为什么?或其他方式来做到这一点?
我只需要将一个字符串从动作过滤器发送到重定向方法