当用户登陆站点后台管理系统后,用session记录下用户的id和所属部门编号,在添加新闻时,把session记录下的这两点信息都添加到记录中,这样我就知道哪条新闻是哪个部门的哪个用户发布的了,可是:
1、在同一内部网内,172.26.16.1的机子用A用户登陆,发一条信息,立即查看,没问题,这时, A用户不注销session退出;
2、这期间,172.26.16.2的机子用B用户登陆,也发一条信息,查看信息,却发现这条信息变成了A发的了;B接着再发一条,这次才正确;
3、立即转到172.26.16.1机子上,A用户接着发信息,查看后居然成B发的了,再发信息又正确。就是这样的情况,好稀奇的问题,第一次用session遇到这样的情况,这分钟我实在困惑。我用的是.net开发的,我不知道session是什么地方出问题了,程序文件是放在172.26.16.3机子上的。还有就是98的系统用IE6浏览我开发的这个站点会有死机的情况,XP和2000没有,这又是为什么呢?
1、在同一内部网内,172.26.16.1的机子用A用户登陆,发一条信息,立即查看,没问题,这时, A用户不注销session退出;
2、这期间,172.26.16.2的机子用B用户登陆,也发一条信息,查看信息,却发现这条信息变成了A发的了;B接着再发一条,这次才正确;
3、立即转到172.26.16.1机子上,A用户接着发信息,查看后居然成B发的了,再发信息又正确。就是这样的情况,好稀奇的问题,第一次用session遇到这样的情况,这分钟我实在困惑。我用的是.net开发的,我不知道session是什么地方出问题了,程序文件是放在172.26.16.3机子上的。还有就是98的系统用IE6浏览我开发的这个站点会有死机的情况,XP和2000没有,这又是为什么呢?
我的系统的用户等级分为两级,为超级用户和授权用户,使用管理后台发布自己信息的用户不少,当大家同时使用各自的帐号发布信息时就出现了这个问题。
session用户信息是这样赋值的:当用户登录时先判断用户名和密码,都无误后才执行如下语句Session["User_Id"] = dr["Id"].ToString();
……
在提取信息表单时,我是把各项表单信息的提取都放在一个公共函数中,这样编辑后新增的时候直接调用这个公共函数就可以了,在向记录的用户信息字段添加信息时也只是执行了这样的语句
try
{
string aa = Session["User_Id"].ToString();
}
catch(Exception ee)
{
Response.Write(ee.Message);
}还得恳请各位帮我解决这个问题啊。还有就是刚才想了想为什么98死机的问题,我是这样猜的,当一个aspx页面中的web控件很多时,我们通过浏览器的查看源代码功能查看代码时会发现里面有非常大的一段编译时产生的密密麻麻的代码,控件越多,这段代码的量就越大。会不会是这个问题导致了98的死机呢?因为我有个aspx页面中集中了至少60个web控件。只是不晓得这样的猜测是否正确。
{
Sql_Execute se = new Sql_Execute();//实例化Table.cs的SQL执行类
int S_Value = 7;//执行成功
DataSet ds = new DataSet();
ds = se.Select_TBUser(G_ZTName,G_UserID);
if (ds.Tables["DataInfo"].Rows.Count <= 0 || ds.Tables["DataInfo"].Rows.Count > 1)
{
S_Value = 5;//用户不存在
}
else
{
foreach (DataRow dr in ds.Tables["DataInfo"].Rows)
{
if (dr["UserPwd"].ToString() != G_PassWord)
{
S_Value = 6;//密码错误
break;
}
else
{
Session["User_Id"] = dr["ID"].ToString();
Session["User_Jgid"] = dr["JGID"].ToString();
Session["User_Name"] = dr["UserID"].ToString();
Session["User_FullName"] = dr["UserName"].ToString();
Session["User_Type"] = dr["UserType"].ToString();
Session.Timeout = 2000;
}
}
}
return S_Value;
} public string LoginOut()//退出登录
{
int S_Value = 7;//执行成功
try
{
Session.RemoveAll();
Session.Abandon();
}
catch
{
S_Value = 4;//执行失败
}
return this.R_Message(S_Value);
}
和这里情况差不多,难搞
session对于本机新开的IE来说,变量全是不同的,何况还是别的机器~~~~~~~~~~~
揭帖!!!