发布网友 发布时间:2022-06-02 09:54
共1个回答
热心网友 时间:2023-10-14 23:36
session不会被覆盖,因为不同用户访问session的来源ip和浏览器是不同的,所以不同的用户的session是不同的,你的担心是多余的。但是需要注意的是session不能设置太多数据,因为session会有很多用户,每个用户都有一个session这种数据存储的负担是很大的,如果每一个session的数据又多,就会导致系统的缓存不够用。所以session仅仅用来做用户登录验证用,而不建议用session存储更多的用户信息。最好的是session存储用户的id而用户的信息从这个id去数据库去取。追答用户A在访问服务器X的时候会创建一个session缓存区,用户A所有的session变量都存在这个缓存区里。
用户B在访问服务器X的时候会创建一个session缓存区,用户B所有的session变量都存在这个缓存区里,这里用户B的数据不会和用户A的session数据存在一个位置,所以他们是各自独立的操作。
服务器能够通过请求页面的来源比如浏览器的差别,计算机的差别,来吧用用户A和用户B区分开。
虽然你的页面上写的Session["UserInfo"]是相同的名字,但是服务器在识别这些名字的时候是在前面加了一个命名空间的。也就是A.Session["UserInfo"]和B.Session["UserInfo"]所以数据不会覆盖。
当然了用户A和用户B可能是同一个账号,比如用户A是123账号,用户B也是使用123账号,这样两个session数据是一样的,但是存储的地方不一样,也就不存在所谓的覆盖。