2013-07-03 182 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和我没有配置空闲超时属性? –