在我的ASP.NET MVC 3應用程序中,當我在LogOn Action中檢查我的記住我框時,它應該創建一個持久性cookie,以便當我關閉瀏覽器並重新打開會話ID未被存儲在cookie中
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
當我使用小提琴手,我可以看到會話ID被送到像這樣:它,我應該還是會保持登錄
Request sent 342 bytes of Cookie data:
ASP.NET_SessionId=<Session ID>; .ASPXAUTH=<Auth String>
但是,當我關閉瀏覽器,重新打開它,我仍然登錄,但請求不發送會話ID:
Request sent 298 bytes of Cookie data:
.ASPXAUTH=<Auth String>
然後我把Response.Write(Session.SessionID)
放在我的Action中,每當我重新打開我的瀏覽器時刷新頁面,這個就會改變。如果我不關閉瀏覽器,則每次刷新時會話ID保持不變。
我使用StateServer
來保持會話狀態,因爲我認爲這可能會解決問題,因爲我也通過InProc
來體驗它。
右行,因爲我想在一個會話變量保存用戶的公司,因爲它是在用我的'_Layout.cshtml'文件和思想的Session變量會是最好的,因爲它在我的應用程序中的所有視圖中都是持久的,但似乎如果他們關閉瀏覽器,這個變量不再存在 – CallumVass 2012-04-20 13:52:49
當然,非常有意義。但是,我建議你做這樣的事情: public string GetMyCompany(){ return Session [「MyCompany」] = Session [「MyCompany」] ?? GetMyCompanyFromDataBase(); } – aquinas 2012-04-20 13:56:56
啊,完美我會試試看,謝謝! – CallumVass 2012-04-20 13:58:28