在MVC中的IE中打开新标签页时,会话被覆盖

时间:2018-10-30 14:36:40

标签: asp.net-mvc-3 asp.net-mvc-5

我有一个主页网址http://localhost:3443/home1 在home1的索引操作中,我有一个session [“ Home”] = Home1。 我有另一个首页网址http://localhost:3443/home2 我在那里有一个会话session [“ Home”] = Home2。

现在,该上下文对于某些用户而言,登录页面为home1。因此,如果他们单击菜单上的主页按钮或进行任何此类活动,则应进入home1。

对于另一组用户,无论他们从事何种活动,都应该进入首页2。

现在菜单。它是一个ascx控件 在这里,我们正在检查会话值是home1或home2。 基于此,我们将用户重定向到所需的目标页面。 现在我面临的问题是当我们复制 http://localhost:3443/home1转到另一个标签,例如tab2,然后将其更改为home2,然后执行一些活动。然后回到tab1,在执行home2会话时,该值将被覆盖。单击菜单中的主页链接会导致错误的登录页面。您对此问题有解决方案吗?

我希望我已经正确解释了这个问题,否则请告诉我。

2 个答案:

答案 0 :(得分:0)

会话用于包含两个选项卡的连接(例如,为什么您可以在一个选项卡上登录到stackoverflow,然后如果您打开第二个选项卡仍然登录)

答案 1 :(得分:0)

正如@Skuld所提到的,该会话用于用户连接到站点,因此如果用户转到另一个页面,则他或她被允许进入,他们可以在新选项卡中打开此页面,并保持原始选项卡处于打开状态(如果它们是表格)您可能想要查看的页面14 AntiForgeryToken。我也注意到您说过这种情况在IE中也会发生吗?如果是这样,您可能要查看IE是否除cookie外。您可以将角色添加到会话中,然后从您的控制器将这些角色授权给home1或home 2,您应该将用户和角色授权给您会话中不在代码中的页面。如果没有任何代码,很难提供更多帮助。

希望这能使您走上正确的轨道。