静态变量问题(续)刚才已结贴

renjuwhts 2010-10-27 04:22:00
实际情况是这样的:

public static UserInfo user = null;
public BasePage()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
if (Session["CrtUser"] == null)
{
Response.Redirect("~/Login.aspx");
}
else
{
user = (UserInfo)Session["CrtUser"];
}
}



测试:
我和朋友 2个人,在2台机器
分别登录网站,我先登录,他后登录,我的user并没有被覆盖


这是怎么回事呢
...全文
82 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
renjuwhts 2010-10-27
  • 打赏
  • 举报
回复
看来你也没想通= =
实际在刷新页面的时候,USER已经是B的了,只是通过SESSION又把USER的值设回去了。。
所以这样是测试不出来的

现在新的问题在8楼
  • 打赏
  • 举报
回复
请告之你的测试结果。
  • 打赏
  • 举报
回复
请确保你们使用的是不同的帐号
另外,在一个页的Page_Load中写下面的测试代码

if(user!=null)
{
Response.Write(user.属性名);
}

A先用A帐户登录,
B先用B帐户登录,

A刷新当前面。试试user.属性名是否发生变化。
renjuwhts 2010-10-27
  • 打赏
  • 举报
回复
我用静态的,是因为在AJAX方法里面不能获得实例变量的值
如果不用静态,怎么解决呢
renjuwhts 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bclz_vs 的回复:]

你是怎么查看你的user 被覆盖了呢?

或许因为你访问页面的时候,又把user 设置成你的了
[/Quote]



我又想了下,你说的对,我应该是又把USER设置成自己的了
renjuwhts 2010-10-27
  • 打赏
  • 举报
回复
确实。。有道理
但是确实不会共享啊,晕了
边城的刀声 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 renjuwhts 的回复:]

我也这么想,如果是一般的变量,可能会被共享
但是session不会- -
[/Quote]
你的user存的不是session,就是UserInfo的一个实例
renjuwhts 2010-10-27
  • 打赏
  • 举报
回复
我也这么想,如果是一般的变量,可能会被共享
但是session不会- -
rabbit5 2010-10-27
  • 打赏
  • 举报
回复
Session是会话,如果在同一台机子上登录就会被覆盖了

两台机子要用application存CrtUser
边城的刀声 2010-10-27
  • 打赏
  • 举报
回复
你是怎么查看你的user 被覆盖了呢?

或许因为你访问页面的时候,又把user 设置成你的了
hookyzlr 2010-10-27
  • 打赏
  • 举报
回复
看看你刚才发的帖子,粘贴个链接看看

62,074

社区成员

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

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

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

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