2013-07-03 179 views
0

後失去了我的網站上會話登錄

  1. 填充形式登陸前保存數據會話
  2. 登錄使用LinkedIn ID
  3. 登錄的頁面加載從會話中獲取數據,然後插入到SQL數據庫之後

我的問題是有些時候我得到會議和其他時間我沒有得到會議(會話丟失)(大多時3-4人在同一時間測試... 2-3獲得會議和1-2沒有獲得會議)

任何人都可以告訴我什麼是問題?我怎麼解決這個問題?

任何其他方式來完成這項任務?

登錄前在會話中敲打 會話[「sesObjFundRaiseSeek」] = objFundRaiseSeek;登錄後

獲取

if (Session["sesObjSellSeekBL"] != null) 
{ 
    clsSellSeekBL ObjSellSeekBL = (clsSellSeekBL)Session["sesObjSellSeekBL"]; 
} 
+0

任何代碼,你可以提出?請更具體! – Marcus

+2

如果您沒有向我們展示您的代碼,我們無法爲您提供幫助。 – Archer

+0

提供的信息很難回答,您是否重置會話變量或將其設置爲空?也許你實例化了你放在會話中的某個對象?聽起來像你不止一次地設置會話值。 – Marcus

回答

0

是它與你會話的時間很短的時間後的時刻出了問題?您可以在web.config中輸入默認會話超時。這在system.web下完成。下面是一個例子,其中480是分鐘數:

<sessionState timeout="480"></sessionState> 

更多信息:http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.71).aspx

一種替代的解決方案是使用cookie。我會推薦使用Cookies來存儲用戶狀態信息。由於Cookie是存儲在用戶的計算機上,它更容易配置:

我在下面的例子中設置有效期限至100000天之後:

HttpCookie myCookie = new HttpCookie("sesObjSellSeekBL"); 
myCookie.Value = Convert.ToString(user_id); //store the user id here at the very least 
myCookie.Expires = DateTime.Now.AddDays(100000d); 
Response.Cookies.Add(myCookie); 

這裏是你如何檢查您的Cookie:

if (Request.Cookies["sesObjSellSeekBL"] != null) 

這裏是你如何註銷用戶:

HttpCookie myCookie = new HttpCookie("sesObjSellSeekBL"); 
myCookie.Expires = DateTime.Now.AddDays(-1d); 
Response.Cookies.Add(myCookie); 
+0

謝謝,但我已經在web.config中設置了超時60分鐘 –

+0

您使用的是哪個版本的IIS?你配置了空閒超時屬性嗎? – rgrano

+0

IIS 6.0和我沒有配置空閒超時屬性? –