2013-01-04 69 views
1

我創建了一個ASP.NET MVC應用程序,它在用戶登錄後將其用戶信息保存在會話中。沒有什麼花哨的,只是一個簡單的應用程序。.NET會話在構建後未保存

最近我注意到了這個奇怪的行爲,Session在重建後不會保存第一次運行。這是一致的。

下面是一個例子:

  1. 重建方案
  2. 開幕登錄頁面,輸入證書
  3. 登錄,在驗證,重定向到儀表板,但儀表盤說沒有會話發現
  4. 返回到登錄輸入相同的憑證
  5. 登錄驗證,重定向到儀表板沒有問題

在一個完美的情況下,不應該有在項目#3,因爲在驗證會話設置爲標誌,一個用戶登錄應用程序的任何錯誤。

我在想,如果我在這裏想念的東西或這只是Session的工作方式。我希望有人能爲我揭開一些光。

[HttpGet] 
public ActionResult Index(){ 
    HttpContext.Session.Remove("UserIn"); 
    return View(); 
} 
[HttpPost] 
public ActionResult Index(string username, string password){ 
    bool validUser = true; 
    if(validUser){ 
    HttpContext.Session["UserIn"] = username; 
    } 
    return RedirectToAction("Dashboard"); 
} 

[HttpGet] 
public ActionResult Dashboard(){ 
    if(HttpContext.Session["UserIn"] == null){ 
    throw new Exception("No session found"); 
    } 
    return View(); 
} 
+0

你能在2行動中顯示相關的代碼嗎?您如何存儲價值和重定向以及您如何閱讀價值? –

+0

您可以添加檢查儀表板和驗證塊中會話對象的代碼嗎? – christiandev

+0

我添加了代碼,修剪了一些不相關的代碼。這幾乎是如何使用會話。 – xar

回答