2013-05-20 33 views
0

進出口新的MVC,這爲w我需要做的:行爲過濾器:重定向到註銷併發送一個錯誤味精

  1. 一個人登錄到應用程序中的1處(PC 1)
  2. 去到不同的電腦並重新登錄(不從PC 1登錄關閉)
  3. 有人嘗試使用電腦1
  4. PC 1註銷
  5. 一個錯誤頁說「U已經登錄的,因爲......」

直到4 IM確定的,但我對我的行爲過濾器的下面的代碼:

    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 =始終爲真

任何知道爲什麼?或另一種方式來做到這一點?

我只需要從動作過濾器發送一個字符串到重定向方法

+0

如果我理解正確,您希望在不同的計算機上註銷同一用戶,對嗎? –

回答

0

獲取一個鍵/值集合,可以用於一個IHttpModule的接口和IHttpHandler接口之間組織和共享 數據 在HTTP請求期間。

項目它只是對於單個請求,你需要一個會話變量來解決這種情況。