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

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

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

推荐答案

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

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

If Not IsPostback Then
  'Generate a new PageiD'
  ViewState("_PageID") = (New Random()).Next().ToString()
End If

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

Session(ViewState("_PageID").ToString() & "CheckBoxes") = D

Notes:

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

Asp.net相关问答推荐

502 DotNet WebApplication的网关nginx已损坏

从组件属性调用异步方法的正确方法

无法为媒体类型application/x-www-form-urlencoded生成样本

ASP.NET - 在屏幕底部显示应用程序构建日期/信息

登录成功后 User.Identity.IsAuthenticated 为 false

将命令行参数传递给 ASP.NET Core 中的 Startup 类

用户NT AUTHORITY\NETWORK SERVICE登录失败

stream.CopyTo - 文件为空.网

为什么对 ASP.NET MVC 控制器的调用不执行 DelegatingHandler?

免费的 ASP.Net 和/或 CSS 主题

使用 ASPNet_Regiis 加密自定义配置部分 - 你能做到吗?

使 Web.config 转换在本地工作

解析器错误消息:无法加载类型网络营销

如何判断本地主机

解析器错误:此处不允许使用_Default,因为它没有扩展类System.Web.UI.Page和 MasterType 声明

如何使用 jquery 设置单选按钮 Select 的值

回发后运行javascript函数

使用 FormsAuthentication.SetAuthCookie 存储更多信息

MVC4 中 Global.asax.cs 页面中的问题

在 ASP.NET 中使用 SecureString 有什么好处吗?