所以这是一个 ASP.NET 问题,两个用户使用同一台机器,相同的浏览器。
- 用户 1 登录域。
- 用户 1 更改了一些数据而不保存它。
- 用户 2 在单独的选项卡中登录域。
- 用户 1 切换回他的选项卡并保存数据。
- 用户 1 实际将数据保存到用户 2 中!!
这是由以下机制引起的:
- 同一浏览器中的不同选项卡似乎共享相同的会话 ID。
- 我们将用户身份验证存储在 cookie 中,并且 cookie 在选项卡之间共享(同一域)
因此,当用户 1 请求保存时,由于 cookie 已更新为用户 2,因此将其识别为用户 2。
所以我想知道是否有任何其他方法可以防止这种情况发生,除了: 1. 使用 cookieless 会话,以便会话嵌入在 uri 中。2. 始终在页面中包含一个隐藏字段以指示哪个用户拥有该页面。
问候,