BasePage全局实体对象会冲突吗(非静态)

本人QQ-554433626 2018-10-08 10:10:56
BasePage里包含实体:

private EDRS.Model.XT_ZZJG_RYBM userInfo;
/// <summary>
/// 登录用户信息
/// </summary>
public EDRS.Model.XT_ZZJG_RYBM UserInfo
{
get { return userInfo; }
set { userInfo = value; }
}

Page_Load包含代码:
userInfo = System.Web.HttpContext.Current.Session["user"] as EDRS.Model.XT_ZZJG_RYBM;


页面继承BasePage,直接使用UserInfo对象

改上一个开发的代码,之前不是使用webform,不是很懂,并发时UserInfo对象会不会冲突。

现在用户那边使用制作端出现串号,不能调试。网站运行没有遇到串号情况。

问一下并发时B是否会改变A的UserInfo对象?
域账户电脑是否会存在session冲突的情况?
一个IIS多个网站 未自定义session的cookiename会不会冲突?
...全文
238 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
本人QQ-554433626 2018-10-09
  • 打赏
  • 举报
回复
页面嵌套在winform里,WebBrowser 继承chrome 关闭程序再打开sessionid一直没变 多台电脑sessionId也一样
本人QQ-554433626 2018-10-09
  • 打赏
  • 举报
回复
问题是这样的 : 用户一登录:
日志时间:2018/10/09 11:45:09
发起路径:http://192.168.1.16:8083/
客户端浏览器:Chrome41
错误类型:wq设置用户信息,userIp=192.168.1.28,sessionId=0i2c4quo4rrb3mvd5vzk1jur,model
错误信息:
所在方法:UserLogin
所在类库:Login.aspx
SQL语句:
参数列表:{}
用户二登录:
日志时间:2018/10/09 11:45:09
发起路径:http://192.168.1.16:8083/
客户端浏览器:Chrome41
错误类型:wq设置用户信息,userIp=192.168.1.28,sessionId=0i2c4quo4rrb3mvd5vzk1jur,model
错误信息:
所在方法:UserLogin
所在类库:Login.aspx
SQL语句:
参数列表:{}
两台机器 ip可以看出。第一台先登录,第二台登录拿到了第一台的sessionid去登录,覆盖了session值
游北亮 2018-10-09
  • 打赏
  • 举报
回复
无法复现,只能打日志,等待下次再出现的时候排查, 日志包括: 每次生成的串号,UserAgent,SessionID,Url,Post数据等等, 自己评估需要记录哪些,方便定位问题
本人QQ-554433626 2018-10-09
  • 打赏
  • 举报
回复
引用 6 楼 qq_32661557 的回复:
[quote=引用 5 楼 starfd 的回复:] https://www.cnblogs.com/xiaoyaodijun/p/6605070.html 你可以通过日志来记录sessionid以及取到对象的地址,以此对比是否是同一个对象
是打了日志。但是远程客户外网复现不了bug,也无法定位哪的问题。[/quote] 客户是使用的内网系统。页面是嵌套的,Chrome内核
本人QQ-554433626 2018-10-09
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
https://www.cnblogs.com/xiaoyaodijun/p/6605070.html 你可以通过日志来记录sessionid以及取到对象的地址,以此对比是否是同一个对象
是打了日志。但是远程客户外网复现不了bug,也无法定位哪的问题。
  • 打赏
  • 举报
回复
https://www.cnblogs.com/xiaoyaodijun/p/6605070.html 你可以通过日志来记录sessionid以及取到对象的地址,以此对比是否是同一个对象
  • 打赏
  • 举报
回复
Session 本来就是不冲突的,由SessonId来确认究竟该用哪份数据
本人QQ-554433626 2018-10-09
  • 打赏
  • 举报
回复
引用 2 楼 youbl 的回复:
BasePage的field或属性,如果不是static的,那么多用户之间是不冲突的。 每个用户请求,都会new一个全新的Page对象,彼此之间当然是隔离的
现在客户端不同电脑出现session串号。不同电脑同一浏览器内核也会生成不同sessionID,怎么会冲突呢!!
游北亮 2018-10-09
  • 打赏
  • 举报
回复
BasePage的field或属性,如果不是static的,那么多用户之间是不冲突的。 每个用户请求,都会new一个全新的Page对象,彼此之间当然是隔离的
本人QQ-554433626 2018-10-09
  • 打赏
  • 举报
回复
session信息冲突 打脑壳
本人QQ-554433626 2018-10-09
  • 打赏
  • 举报
回复
现在模拟用户环境。采用同一电脑不同用户使用程序,cookie共享了。而浏览器不同电脑不会共享。
正怒月神 版主 2018-10-09
  • 打赏
  • 举报
回复
public EDRS.Model.XT_ZZJG_RYBM UserInfo { get { return userInfo; } set { userInfo = value; } } 改成 public EDRS.Model.XT_ZZJG_RYBM UserInfo { get { return System.Web.HttpContext.Current.Session["user"] as EDRS.Model.XT_ZZJG_RYBM; } set { userInfo = value; } } PageLoad里的userinfo赋值去掉。 我以前也碰到过这个问题,当时也是百思不得其解。 我认为在基类中的对象,对于每个用户访问都是单独一份的。后来也出现了串号问题。 最后就是直接在基类中给对象赋值session,好像解决了。 你先试试看吧
游北亮 2018-10-09
  • 打赏
  • 举报
回复
你的SessionId怎么来的?

62,072

社区成员

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

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

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

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