登录后会话丢失
本文关键字:会话 登录 | 更新日期: 2023-09-27 18:20:48
在我的网站上
- 登录前填写表单在会话中保存数据
- 使用Linkedin ID登录
- 登录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);