如何在 asp.net c# 中的不同浏览器选项卡中区分同一会话的值

how to differ values of same session in different browser tab in asp.net c#

我正在创建一个 Web 应用程序,并且要求我必须在不同的浏览器选项卡上使用不同的同一会话 Session["JobNumber"] 值。如果我在第一个选项卡中进行任何更改,这些更改不会影响第二个选项卡。

我已经搜索过了,在所有博客中都找到了相同的答案,所以我尝试了这个:

在web.config文件中

<configuration>
  <system.web>
    <sessionState cookieless="true"
      regenerateExpiredSessionId="true" />
  </system.web>
</configuration>

在表单页面加载时

if (!IsPostBack)
            {
                PageID.Value = Guid.NewGuid().ToString();
.

.

}

这里PageID是:

<asp:HiddenField ID="PageID" runat="server" />

我在会话中存储值的代码

var sessionkey = string.Format("Session_{0}", PageID.Value);
            Session[sessionkey] = SelectedNumber;
            Session["JobNumber"] = Session[sessionkey];

这是我到处都能找到的,所以我尝试了这个。但它不工作。相反,当我 log in 到我的应用时弹出消息 error:401。如果我从 web.config 中删除该代码,此错误将消失。

因为401是认证失败。我在 web.config 中编写的代码与此有何关系?奇怪的是,弹出消息说 error:401 我仍然登录成功。有什么建议吗?

页面加载时:

PageID.Value = Session["JobNumber"].ToString();

曾经使用 Session["JobNumber"] 的地方,将其替换为 PageID.Value

web.config

中不需要此代码
<configuration>
  <system.web>
    <sessionState cookieless="true"
      regenerateExpiredSessionId="true" />
  </system.web>
</configuration>