Sesstion混乱问题啊,等待高手解决..急啊!

lxiron 2009-10-31 10:36:09


最近做了一个小项目,用户登录信息及用户权限是用Session保存的,现在出现了Session混乱的显现,A计算机用a用户名登录该系统,B计算机用b用户名登陆该系统,结果B操作时记录的确是a的用户名。甚至是c,d ,f等用户名。大家有什么好的办法来控制Session混乱啊,



用cookies会不会发生混乱,急啊!
...全文
194 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
山上的夜 2009-10-31
  • 打赏
  • 举报
回复
就是谁登陆 都会去改那个静态变量 结果所有的操作都在记录在最后登陆的那个人上了 不信你验证下
z109214114 2009-10-31
  • 打赏
  • 举报
回复
学习了...............
lxiron 2009-10-31
  • 打赏
  • 举报
回复
看来真是个静态变量惹得祸,呵呵!由于在开发阶段只有我一个人在使用,就没有发现这个bug,发布用户用了以后出问题,自己回复结果是别人的名字,就怀疑是session出问题,但具体不知是哪里出问题,事前用静态变量感觉挺好用的,看来以后要慎用呢![Quote=引用 23 楼 lixinramaxel41658133 的回复:]
比如你设定一个全局静态变量A,把Session值赋给这个变量A,,你每个页面涉及到Session的地方都用这个变量A代替,,一开始用的好好的,,等会又有个人登陆进来,,他的值赋给这个全局静态变量A,那么这个值就变了,,而之前的那个登陆人的信息也就跟着变了。。。


你可以取消全局变量,直接string a=Session["UserName"].Tostring()这样子,,或者是直接去取Session["UserName"]的值。。
[/Quote]
阿彪兄 2009-10-31
  • 打赏
  • 举报
回复
估计是程序问题,直接单步调试吧
  • 打赏
  • 举报
回复
比如你设定一个全局静态变量A,把Session值赋给这个变量A,,你每个页面涉及到Session的地方都用这个变量A代替,,一开始用的好好的,,等会又有个人登陆进来,,他的值赋给这个全局静态变量A,那么这个值就变了,,而之前的那个登陆人的信息也就跟着变了。。。


你可以取消全局变量,直接string a=Session["UserName"].Tostring()这样子,,或者是直接去取Session["UserName"]的值。。
fuda_1985 2009-10-31
  • 打赏
  • 举报
回复
就应该用session啊。在asp.net里application算是全局变量了,但是针对所有人的了。除非你用别的办法使其能针对一人,如将用户用list诸如此类的东西放入application,每加一个用户就在list中添加相关信息,这样可以做到,然后用户下线就减去相应人员的信息,还不如使用session呢,只要处理好浏览器意外关闭就好了,或者做个折中的方案,每次登陆写session的时候将session先清空~

如果你在局部弄个变量,你要知道asp.net里页面是回发一次就重新加载一次,你这个局部变量就会重新赋值重新初始化的,
lxiron 2009-10-31
  • 打赏
  • 举报
回复
fuda_1985谢谢你的认真回复,我现在也有点不理解全局变量和静态变量时怎么执行的,难道他们都是针对所有用户的,只要有用户修改它们,然后在获取,他们就改变了 ?

现在这样你看行不行,不要全局变量,及静态变量,用到的时候直接从session中取之,这样就应该不回了吧!
[Quote=引用 19 楼 fuda_1985 的回复:]
你全局变量打算怎么声明。我还真是不懂了。。。
[/Quote]
fuda_1985 2009-10-31
  • 打赏
  • 举报
回复
不能使用application。一样的效果。
fuda_1985 2009-10-31
  • 打赏
  • 举报
回复
你全局变量打算怎么声明。我还真是不懂了。。。
trueman117 2009-10-31
  • 打赏
  • 举报
回复
static不能乱用啊
fuda_1985 2009-10-31
  • 打赏
  • 举报
回复
不能使用全局的。直接将每个用户的权限写到session里去。读session。。。注意意外关闭问题。
lxiron 2009-10-31
  • 打赏
  • 举报
回复
那我改为全局非静态的变量行不?现在这个系统需要紧急解决,问你个弱弱的问题,全局静态变量时针对所有用户声名的,全局变量时针对某一个用户声名的,我这里样的理解对不?[Quote=引用 13 楼 fuda_1985 的回复:]
引用 11 楼 lxiron 的回复:
我的用户名及权限是声名为静态的全局变量,这回影响到其他用户吗?有些不明白,还望大侠说的详细些!引用 2 楼 fuda_1985 的回复:
这应该不是session混乱吧。按你说的a用A机登,b用B机登,session不会串的.
你应该是程序里使用了static变量存一些东西,就会出现这种状况。。。


这不串才怪。。每一个用户登陆后都是改的那个静态的全局变量,也就是你系统里不管登了多少个人都是用的那一个变量,不串才怪啊。
[/Quote]
mbh0210 2009-10-31
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lxiron 的回复:]
我的用户名及权限是声名为静态的全局变量,这回影响到其他用户吗?有些不明白,还望大侠说的详细些!引用 2 楼 fuda_1985 的回复:
这应该不是session混乱吧。按你说的a用A机登,b用B机登,session不会串的.
你应该是程序里使用了static变量存一些东西,就会出现这种状况。。。

[/Quote]

静态变量变量肯定有问题的,是最后一个登录。
fuda_1985 2009-10-31
  • 打赏
  • 举报
回复
慎用静态变量!!!!
fuda_1985 2009-10-31
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lxiron 的回复:]
我的用户名及权限是声名为静态的全局变量,这回影响到其他用户吗?有些不明白,还望大侠说的详细些!引用 2 楼 fuda_1985 的回复:
这应该不是session混乱吧。按你说的a用A机登,b用B机登,session不会串的.
你应该是程序里使用了static变量存一些东西,就会出现这种状况。。。

[/Quote]
这不串才怪。。每一个用户登陆后都是改的那个静态的全局变量,也就是你系统里不管登了多少个人都是用的那一个变量,不串才怪啊。
fuda_1985 2009-10-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyq11 的回复:]
在同一电脑中可能存在ssession 串值问题。
代码编写问题。
[/Quote]
哦,想到了,只检查那个用户的那个session是否为空,但是意外关闭没做就串了!~
不过他这程序很有可能是全局变量的问题~

不同机器呀!~
lxiron 2009-10-31
  • 打赏
  • 举报
回复
我的用户名及权限是声名为静态的全局变量,这回影响到其他用户吗?有些不明白,还望大侠说的详细些![Quote=引用 2 楼 fuda_1985 的回复:]
这应该不是session混乱吧。按你说的a用A机登,b用B机登,session不会串的.
你应该是程序里使用了static变量存一些东西,就会出现这种状况。。。
[/Quote]
wuyq11 2009-10-31
  • 打赏
  • 举报
回复
在同一电脑中可能存在ssession 串值问题。
代码编写问题。
SK_Aqi 2009-10-31
  • 打赏
  • 举报
回复
mbh0210 2009-10-31
  • 打赏
  • 举报
回复
检查一下你的程序,在session赋值中之类的有啥问题没有

我估计是你代码有问题,这种问题一般都是自己写的程序造成的
加载更多回复(14)

62,074

社区成员

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

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

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

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