同一台电脑不同ID同时登录出现的session问题。

mouse007 2012-02-01 02:52:27
最近边学边做了一个基于asp.net的用户交互式网站,使用中碰到了一个问题:
有一个用户有A、B两个ID,在同一台电脑上先用A登录网站并进入留言界面,这时又用B登录网站,接着回到A编写发送了留言。结果是留言上显示的ID是B的。 这样就搞不清到底是用户的哪个ID留的言了。。。。
用的是IE8浏览器,不管是在同一个窗口中用两个选项卡登录还是分别新建两个窗口登录都会出现这个问题。

代码编写的大致思路是用户登录时先和数据库中的用户名验证,通过验证后用:Session["loginName"] = txtName.Text;记录用户名。

刚开始学习.net,很多地方都不清楚,只是觉得应该是session上出的用户名被覆盖了。

还请各位高手多多指点该如何解决这个问题,感激不尽!
...全文
230 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlin22 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

自己顶个规则,session名+id别重复就行了,比如 session[id+xxx],id应该不同吧,这样就不会覆盖了
[/Quote]

一楼的观点我理解是:当你以用户A身份等入时候,在和数据核对用户名后,生成Session[user_A_ID+"username"]当你以用户B身份登入时候生成Session[user_B_ID+"username"],应为 user ID是不会重复所以Session不会被覆盖。个人觉得Session比Cookie好用,能载大的数据。
mouse007 2012-02-01
  • 打赏
  • 举报
回复
刚开始学,都是按着教程上的例子写的。写出的东西感觉如果用户只是“老老实实”按部就班还勉强能正常使用,写的时候自己测试也测试不出来,一旦正常投入使用总是出现各种各样的问题。。。
mouse007 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 goldenroses 的回复:]
SessionID是要写入cookie的,既然是同一个浏览器,则只能保存一个SessionID,就是你最后一次登录产生的那个SessionID

严格的来讲,在登录页面你需要判断用户是否已经登录。如果已经登录,要么clear掉以前的session,要么重定向到登录以后的页面
[/Quote]
哦~原来是这样,多谢!
goldenroses 2012-02-01
  • 打赏
  • 举报
回复
SessionID是要写入cookie的,既然是同一个浏览器,则只能保存一个SessionID,就是你最后一次登录产生的那个SessionID

严格的来讲,在登录页面你需要判断用户是否已经登录。如果已经登录,要么clear掉以前的session,要么重定向到登录以后的页面
mouse007 2012-02-01
  • 打赏
  • 举报
回复
我刚才输出了一下SessionID,果然是相同的。。。
dalmeeme 2012-02-01
  • 打赏
  • 举报
回复
是不是SessionID相同了?你改用Cookie吧,Seesion容易丢失。登录一般用Cookie。
mouse007 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
自己顶个规则,session名+id别重复就行了,比如 session[id+xxx],id应该不同吧,这样就不会覆盖了
[/Quote]

你说的id指的是 用户名吗?数据库中的用户名是不同的。还有xxx是什么意思哪?劳烦耐心解释一下。多谢了,刚开始学,勿见怪。
bdmh 2012-02-01
  • 打赏
  • 举报
回复
自己顶个规则,session名+id别重复就行了,比如 session[id+xxx],id应该不同吧,这样就不会覆盖了

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧