首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于缓存用户信息后信息混乱的情况

2012-11-06 
请教高手关于缓存用户信息后信息混乱的情况。请教一个问题。在asp.net中我写了一个基类,在基类里面缓存了登

请教高手关于缓存用户信息后信息混乱的情况。
请教一个问题。在asp.net中我写了一个基类,在基类里面缓存了登陆人的信息,所有页面继承这个基类。结果当第一个人登陆后,第二个人登陆了就显示了第一个人的信息。请问这个怎么解决。
  我基类的方法如下:

C# code
 PerModel.usr_userView model = Cache["BasePage_userModel"] as PerModel.usr_userView;//从缓存中读取数据                if (model == null)                {                    string[] tableName = new string[] { "Usr_User", "Per_Dictionary", "Architecture" };                    AggregateCacheDependency aggregateDependency = new AggregateCacheDependency();//实例化AggregateCacheDependency,用于多个实例SqlCacheDependency的加载                    model = userBll.GetUserInfo(Session["UserId"].ToString());                    foreach (string table in tableName)                    {                        aggregateDependency.Add(new SqlCacheDependency("NewOA", table));//把依赖实例加载到数组中                     }                    if (model != null)                    {                        Cache.Insert("BasePage_userModel", model, aggregateDependency);//添加到缓存中                    }                }                if (model != null)                {                    UserID = model.ID;                    UserLoginName = model.UserId;                    UserRealName = model.UserName;                    DepartmentID = model.Org;                    DepartmentName = model.OrgName;                                 } }  


[解决办法]
唯一性标识
[解决办法]
缓存 你可以当成全局变量看

如果你为每个用户都加个缓存,系统开销上反而得不偿失
[解决办法]
实际上catch和Session在使用的时候都是一样的。全部保存在IE浏览器的cockie中。
[解决办法]
其实你可以把用户登录信息放在session里
一般都是这么干的
[解决办法]
探讨

实际上catch和Session在使用的时候都是一样的。全部保存在IE浏览器的cockie中。

[解决办法]
你把用戶的信息保存在緩存的BasePage_userModel对象中,第二個用戶登录的时候会判断
if (model != null)。。这里肯定不部位NULL的,因为服务端存已经存在BasePage_userModel的缓存对象,所以读取的是第一个缓存的,除非这个时候缓存过期。。

你把BasePage_userModel改成BasePage_userModel+UserID。。加一个表示用户的ID就可以了
[解决办法]
探讨

实际上catch和Session在使用的时候都是一样的。全部保存在IE浏览器的cockie中。

[解决办法]
探讨

引用:

实际上catch和Session在使用的时候都是一样的。全部保存在IE浏览器的cockie中。


胡说八道

[解决办法]
建议不要使用这样。。开销比较大,而且不能同步信息。。将UserID保存在Session中就可以了,基类实例化的时候读下数据还是稍微好点。。
[解决办法]
探讨

引用:
建议不要使用这样。。开销比较大,而且不能同步信息。。将UserID保存在Session中就可以了,基类实例化的时候读下数据还是稍微好点。。

谢谢,还是不用缓存了。但是我不太清楚,缓存在什么情况下使用才不会出现我这种情况。

[解决办法]
好多观点真的是错的。
[解决办法]
建议把一些稍微重要的数据,加密放入COOKIE,这样会好很多! 重要数据就不要这么做了!

热点排行