繁体   English   中英

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

[英]how to handle session in mutliple tabs in a browser in c#

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM