我正在使用asp.net C#,我无法管理每个多个标签的会话。我的网站的场景是,USER登录,然后选择一个作业然后申请该作业,当用户申请时,在数据库中针对该请求完成一个条目。它将存储,选择的作业ID和该用户的电子邮件ID。
我面临的问题是,如果我在2个不同标签的浏览器中打开登录页面。条目数据搞砸了。例如, USER当我按下来自用户B的应用按钮,他选择的作业和用户A的电子邮件ID被输入数据库时,用户选择的作业1和用户B选择的作业2。
我尝试通过检查会话对象是否为空/空来解决此问题,然后才应创建新会话。否则,其他用户应该收到他无法登录的错误。但是我的代码每次都不起作用。它有时给我结果,有时它只是不运行。这是我的代码:
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;
所以,任何人都知道如何解决这个问题?不应允许用户从同一浏览器登录多个选项卡。请帮忙。
答案 0 :(得分:0)
您可以在WEB.CONFIG中使用InProc会话状态来解决此问题。
查看此链接以获取更多信息:http://www.codeproject.com/Questions/364203/Stop-Sharing-Session-State-between-Multiple-Tabs-o