如何在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;

那么,有人知道我该如何解决这个问题吗?用户不应该被允许在同一个浏览器中登录多个选项卡。请帮助。

如何在c#浏览器中处理多个选项卡中的会话

您可以通过在WEB.CONFIG中使用InProc会话状态来解决这个问题。

查看此链接获取更多信息:http://www.codeproject.com/Questions/364203/Stop-Sharing-Session-State-between-Multiple-Tabs-o