【问题标题】:Session gets overridden on opening a new tab in IE in mvc在 mvc 中的 IE 中打开新选项卡时,会话被覆盖
【发布时间】:2019-04-03 15:18:41
【问题描述】:

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

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

对于另一组用户,他们应该进入首页 2,无论他们执行什么活动都会导致首页。

现在 menu.it 是一个 ascx 控件 这里我们检查会话值是 home1 还是 home2。 基于此,我们将用户重定向到所需的登录页面。 现在我面临的问题是当我们复制 http://localhost:3443/home1 到另一个标签,例如tab2 并从那里我们将其更改为 home2 然后进行一些活动。然后回到 tab1,值会在 home2 会话中被覆盖。这会导致单击菜单中的主页链接时出现错误的登录页面。你有解决这个问题的办法吗?

希望我已经正确解释了问题,如果没有请告诉我,我会进一步解释。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      正如@Skuld 提到的,会话用于用户连接到站点,因此如果用户转到另一个页面,他或她被允许去,他们可以在新标签中打开它,保持原始标签打开,如果这些是表单您可能想查看 14 AntiForgeryToken 的页面。我也注意到你说这发生在 IE 中,这也发生在 Chrome 中吗?如果是这样,您可能想查看 IE 是否排除 cookie。您可以将角色添加到会话,然后从控制器将这些角色授权给 home1 或 home 2,您应该授权用户和角色访问代码中的页面而不是会话中的页面。没有任何代码可看,它很难再提供帮助。

      希望这能让你走上正轨。

      【讨论】:

        猜你喜欢
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 2020-06-22
        相关资源
        最近更新 更多