虾米@ 2019-12-31 10:25 采纳率: 11.1%
浏览 590
已结题

asp.net多个账号登录,后登录的会将前面登录的user顶掉,登录的user是保存在session中的,这个该怎么解决?

asp.net开发的项目,遇到同一浏览器多个账号登录被顶掉的问题。
登录页面代码如下:
User u = new User();
String name = txName.Text;
string pwd = txPwd.Text;
u = h.getSelect(name);
if(u!=null){
if (u.UserName.Equals(name) && u.UserPwd.Equals(pwd))
{
Context.Session["user"] = u;

var response = base.Response;
response.Redirect("../Frmain.aspx", false)
}
}
登录成功的主页面 Frmain.aspx

protected void Page_Load(object sender, EventArgs e)
{
User user = (User)Session["user"];
if (user == null)
{
var response = base.Response;
response.Redirect("../Login.aspx", false);
}
else
{
this.Label3.Text = user.userId.ToString();
}

}
在Frmain.aspx取出userId
var userid = document.getElementById("Label3").innerHTML;
同一浏览器登录两个账号,先登录A,在登录B,两者看到的东西是不一样的,当我刷新A时,A就被后登录的B给覆盖掉了,A显示的内容就和B一模一样了。
这个userid是很重要的,是用来标识webSocket连接的,webSocket连接成功时,ip+端口+userid一起传给后台服务器(窗体应用程序写的,独立的一个程序,唯一的联系就是通过webSocket通讯传递数据)。
我改如何解决后登录的将前登录的账号顶掉的问题,求大神指点

  • 写回答

4条回答 默认 最新

  • threenewbee 2019-12-31 10:33
    关注

    这是肯定的,同一个浏览器,cookie相同,导致sessionid相同,所以后面的会把前面的踢下去。
    如果你找两个计算机,是不会互相干涉的。你为什么要一个计算机上的浏览器登录2个账户呢?

    如果你非要这么做,需要配置cookieless,不使用cookie,而是使用hidden表单跟踪sessionid

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能