我正在使用 asp.net C#,无法管理每个选项卡的会话。我的网站的场景是,用户登录,然后选择一个工作,然后申请该工作,当用户申请时,在数据库中针对该请求完成一个条目。它将存储该用户的选定作业 ID 和电子邮件 ID。
我面临的问题是,如果我在浏览器中的 2 个不同选项卡中打开登录页面。输入数据被弄乱了。例如,用户 A 选择了工作 1,用户 B 选择了工作 2,当我按下用户 B 的应用按钮时,他选择的工作和用户 A 的电子邮件 ID 被输入到数据库中。
我试图通过检查会话对象是否为 NULL/空来解决这个问题,然后才应该创建一个新会话。否则,其他用户应该得到他无法登录的错误。但我的代码并非每次都有效。它有时会给我结果,有时它只是根本不运行。这是我的代码:
protected void session_create(string s)
{
if (string.IsNullOrEmpty((string)Session[s]))
{
Session[s] = s;
test.Text = "Welcome user, " + (string)(Session[s]);
}
else
{
test.Text = "You are Already logged in";
}
}
然后我将此方法称为 on_submit 按钮:
session_create("email");
因为我只存储电子邮件变量,所以我正在传递电子邮件参数。
在哪里,
string email = emailtextbox.Text;
那么,有人知道我该如何解决这个问题吗?不应允许用户从同一浏览器登录多个选项卡。请帮忙。