实体类数据被缓存,导致各客户端加载到最后一次其他用户操作数据,急,在线等

houndsky 2011-05-19 09:24:21
架构如下:
类:RegUser

public class RegUser
{
public RegUser()
{ }

private int _userId = 0;

public int UserId
{
get { return _userId; }
set { _userId = value; }
}

private string _usermail = "";

public string Usermail
{
get { return _usermail; }
set { _usermail = value; }
}
}


类:GlobalUserClass

public class GlobalUserClass
{
public GlobalUserClass()
{ }

private string _thumbsUserMail;


/// <summary>
/// 根据项目需求定义格式
/// </summary>
public string ThumbsUserMail
{
get
{
if (string.IsNullOrEmpty(_thumbsUserMail))
{
if (PageBase.regUser != null)
{
_thumbsUserMail = PageBase.regUser.Usermail;//根据项目需求定义格式
}
}
return _thumbsUserMail;
}
}
}


基类:PageBase.cs

public class PageBase : System.Web.UI.Page
{
public static RegUser regUser = null;

/// <summary>
/// 判断登录
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)
{
if (Session["UserInfo"] != null && Session["UserInfo"].ToString() != "")
{
regUser = (RegUser)Session["UserInfo"];
}
else
{
Session.Clear();
Response.Redirect("login.aspx");
}
}
}

WEB用户控件:WebUserHead.ascx

if (!IsPostBack)
{
GlobalUserClass userClass = new GlobalUserClass();
string _thumbsUserMail = userClass.ThumbsUserMail;
if (_thumbsUserMail != "")
{
lblThumbsUserMail.Text = _thumbsUserMail;
plShow.Visible = true;
}
}

登录页:login.aspx
主页面:index.aspx

问题描述:
登录页login及主页面index引用web用户控件。主页面index继承基类PageBase判断用户登录状态。
WebUserHead.ascx功能为当用户登录时,显示用户邮箱缩略,未登录时为空。
用户登录时,从数据库获取到的数据对象存入Session["UserInfo"]中,

现在情况为,当用户A成功登录到系统后,webuserhead显示正常。
但用户B进行打开系统进入login页时,webuserhead上还显示用户A的邮箱缩略
如果此时用户C通过login进行系统后,用户B在不登录的状态下,刷新login。此时WebUserHead上显示了用户B的邮箱缩略。

但用户B实际上不能操作任何系统中需要使用SESSION的数据,每一次刷新login页,WebUserHead总显示最后一个成功登录操作系统的用户邮箱缩略。

用户A、B、C在不同机器不同浏览器进行测试

请教一下各位,这种情况如何处理,谢谢!
...全文
123 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
houndsky 2011-05-19
  • 打赏
  • 举报
回复
谢谢楼上,问题已解决
youlove13 2011-05-19
  • 打赏
  • 举报
回复
建议不要用static,因为static,全局共享的都指向内存堆上同一个地址
神风凌 2011-05-19
  • 打赏
  • 举报
回复
我擦,CSDN好烂~登录不了
houndsky 2011-05-19
  • 打赏
  • 举报
回复
自己顶!

62,244

社区成员

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

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

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

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