我創建了一個ASP.NET MVC應用程序,它在用戶登錄後將其用戶信息保存在會話中。沒有什麼花哨的,只是一個簡單的應用程序。.NET會話在構建後未保存
最近我注意到了這個奇怪的行爲,Session在重建後不會保存第一次運行。這是一致的。
下面是一個例子:
- 重建方案
- 開幕登錄頁面,輸入證書
- 登錄,在驗證,重定向到儀表板,但儀表盤說沒有會話發現
- 返回到登錄輸入相同的憑證
- 登錄驗證,重定向到儀表板沒有問題
在一個完美的情況下,不應該有在項目#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();
}
你能在2行動中顯示相關的代碼嗎?您如何存儲價值和重定向以及您如何閱讀價值? –
您可以添加檢查儀表板和驗證塊中會話對象的代碼嗎? – christiandev
我添加了代碼,修剪了一些不相關的代碼。這幾乎是如何使用會話。 – xar