为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

墨色风雨 2019-10-19 16:44:30
我想在每个浏览器标签上维护一个会话状态。在ASP.NET中这样做容易(甚至可能)吗?示例:用户在Firefox中按了Ctrl-T 5次,并在每个选项卡中访问了该站点。我希望每个标签在服务器上都有自己的会话状态
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

使用Brian Webster的答案,我发现XMLHttpRequests有问题。事实证明,XMLHttpRequests并未将IsPostback标志设置为true,因此该请求看起来像一个新请求,并且最终该请求具有新的会话状态。为了解决该问题,我还检查了ViewState("_PageID")


这样我的代码在C#中看起来像这样:


protected dynamic sessionVar; //a copy of the session variable


protected 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"];

    //...

}


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 478 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信