多用户,多会话,多选项卡,cookie环境的准则

时间:2011-01-18 08:32:21

标签: asp.net asp.net-mvc-2 architecture

我们当前的应用程序运行正常,但是当您尝试行为不端时,我们发现当使用不同组织的多个选项卡中的同一用户登录时(主页中有组织下拉列表,无论何时更改,都会设置cookie)。 )

在标签1中它是org 1,标签2是org2,cookie中有以后 org 2但是当我们返回tab1(具有org1)并保存记录 org 2将与记录一起保存

有些人可以与我们分享一些解决这些类型问题的清单。

3 个答案:

答案 0 :(得分:2)

不幸的是,你无能为力。浏览器在选项卡之间共享cookie。表单身份验证使用Cookie来跟踪用户。这与你在其他网站上获得的行为相同,例如gmail。

答案 1 :(得分:0)

您可以使用数据添加隐藏字段以识别每个视图。 您将所有数据存储在服务器端,如会话,缓存,数据库,并提供“唯一”视图

答案 2 :(得分:0)

我希望你会找到一个优雅的解决方案来解决这个问题,但AFAK的一个浏览器实例只是共享一个身份。

为了处理这种情况,我们在母版页上使用HIDDEN,这是主窗体的一部分。它的值是在第一页加载时随机生成的。之后,值将保留在请求之间。会话值与隐藏值的HashTable密钥一起存储。

需要2次黑客才能让它发挥作用。

  1. Response.Redirect使用简单的表单完成,该表单使用POST方法将HIDDEN值传递给新页面。
  2. 点击左侧按钮的所有href也发布HIDDEN值(如果用户使用'在新TAB / Window中打开'直接重定向而不发布只是创建新的HIDDEN值 - 新的subsession。)