登录后会话丢失

本文关键字:会话 登录 | 更新日期: 2023-09-27 18:20:48

在我的网站上

  1. 登录前填写表单在会话中保存数据
  2. 使用Linkedin ID登录
  3. 登录Pageload后,从会话中获取数据,然后插入SQL数据库

我的问题是,有时我正在进行会话,有时我没有进行会话(会话丢失)(大多数情况下,3-4人同时测试…2-3人进行会话,1-2人没有进行会话)

有人能告诉我出了什么问题吗?我该如何解决这个问题?

有其他方法可以完成这项任务吗?

登录前登录会话会话["sesObjFundRiseSeek"]=objFundReseSeek;

登录后获取

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

登录后会话丢失

您的会话在很短的一段时间后超时是否有问题?您可以在web.config中输入默认会话超时。这是在system.web下完成的。下面是一个480是分钟数的示例:

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

有关详细信息:http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.71).aspx

另一种解决方案是使用Cookie。我建议使用Cookie来存储用户状态信息。由于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);