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

时间:2013-04-10 11:24:11

标签: c# asp.net session web

我正在使用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;

所以,任何人都知道如何解决这个问题?不应允许用户从同一浏览器登录多个选项卡。请帮忙。

1 个答案:

答案 0 :(得分:0)

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

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