如何在c#浏览器中处理多个选项卡中的会话
本文关键字:选项 会话 处理 浏览器 | 更新日期: 2023-09-27 18:08:31
我正在使用asp.net c#,无法管理每个选项卡的会话。我的网站的场景是,用户登录,然后选择一个工作,然后申请该工作,当用户申请时,在数据库中针对该请求完成一个条目。它将存储所选的作业ID和该用户的Email ID。
我面临的问题是,如果我在2个不同的选项卡中打开浏览器的登录页面。输入数据被弄乱了。例如,用户A选择了job 1,用户B选择了job 2,当用户B按下apply按钮时,数据库中会输入他选择的job和用户A的email 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 button:
session_create("email");
因为我只存储了email变量,所以我传递了email参数。
,
string email = emailtextbox.Text;
那么,有人知道我该如何解决这个问题吗?用户不应该被允许在同一个浏览器中登录多个选项卡。请帮助。
您可以通过在WEB.CONFIG中使用InProc会话状态来解决这个问题。
查看此链接获取更多信息:http://www.codeproject.com/Questions/364203/Stop-Sharing-Session-State-between-Multiple-Tabs-o