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

我想维护每个浏览器选项卡的会话状态

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

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

要使一个用户的多选项卡会话状态更方便,而又不会弄乱URL,请执行以下操作

在表单加载函数中,包括:

如果不是,则返回
'生成新的PageiD'
ViewState(“_PageID”)=(New Random()).Next().ToString()
如果结束

将某些内容保存到会话状态时,请包含页面ID:

会话(视图状态(“_PageID”).ToString()&“复选框”)=D

注释

  • 与会话ID一般一样,您不能相信恶意查看器不会更改会话ID/PageID。对于可以信任所有用户的环境,这是唯一有效的解决方案。幸运的是,ViewState提供了比使用隐藏输入字段更多的保护
  • 在回发时恢复ViewState之前,您将无法访问PageID。因此,您将无法访问page_init()处理程序中的PageID

发表评论