Asp.net mvc 4 操作筛选器:重定向到注销并发送错误消息

Asp.net mvc 4 操作筛选器:重定向到注销并发送错误消息,asp.net-mvc-4,action-filter,Asp.net Mvc 4,Action Filter,我是MVC新手,这是我需要做的: 个人在1个位置登录应用程序(PC 1) 转到其他PC并再次登录(不从PC 1注销登录) 有人试图使用PC 1 PC 1注销 错误页面显示“u已被记录,因为…” 直到4点我还可以,但我的动作过滤器上有下一个代码: filterContext.HttpContext.Items["errorMsg"] = Resources.Account.Res_String.SessionDuplica; //error msg and

我是MVC新手,这是我需要做的:

  • 个人在1个位置登录应用程序(PC 1)
  • 转到其他PC并再次登录(不从PC 1注销登录)
  • 有人试图使用PC 1
  • PC 1注销
  • 错误页面显示“u已被记录,因为…”
  • 直到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->注销时,我有以下内容:

            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
            }
    
    但是如果(HttpContext.Items[“errorMsg”]==null=始终为真

    知道为什么吗?或者用别的方法

    我只需要将一个字符串从操作筛选器发送到重定向的方法

    获取可用于组织和共享的键/值集合 IHttpModule接口和IHttpHandler接口之间的数据 在HTTP请求期间


    仅针对单个请求,您需要一个会话变量来解决此问题。

    如果我理解正确,您希望在不同的计算机上注销同一用户,对吗?