asp.net-会话-多个浏览器选项卡-不同的会话?

我想在每个浏览器标签上维护一个会话状态。

在ASP.NET中这样做容易(甚至可能)吗?

示例:用户在Firefox中按了Ctrl-T 5次,并在每个选项卡中访问了该站点。我希望每个标签在服务器上都有自己的会话状态


墨色风雨
浏览 481回答 3
3回答

慕标琳琳

使用Brian Webster的答案,我发现XMLHttpRequests有问题。事实证明,XMLHttpRequests并未将IsPostback标志设置为true,因此该请求看起来像一个新请求,并且最终该请求具有新的会话状态。为了解决该问题,我还检查了ViewState("_PageID")这样我的代码在C#中看起来像这样:protected dynamic sessionVar; //a copy of the session variableprotected void Page_Load(object sender, EventArgs e){    if (!IsPostBack && ViewState["_PageID"] == null)    {        ViewState["_PageID"] = (new Random()).Next().ToString();        Session[ViewState["_PageID"] + "sessionVar"] = initSessionVar(); //this function should initialize the session variable    }    sessionVar = Session[ViewState["_PageID"] + "sessionVar"];    //...}
打开App,查看更多内容
随时随地看视频慕课网APP