【问题标题】:How to distinguish session between mutiple tabs of browsers如何区分浏览器的多个选项卡之间的会话
【发布时间】:2013-01-17 06:39:55
【问题描述】:

我找到了一些方法来区分浏览器的多个选项卡之间的会话。首先是关于 Cookiesless。其次是在打开新标签时使用 Javascript 处理 window.name 。第三是使用隐藏字段来保持会话值。还有其他方法来区分会话吗?

【问题讨论】:

  • 我说使用 cookie 并称其为好,但这就是我 :)
  • [也许这就是你想要的。该链接提供了一些代码。它使用 HiddenField][1] [1]: stackoverflow.com/questions/2840615/…
  • 查看我对这个问题的回答:stackoverflow.com/a/14285965/453277。简而言之,使用唯一的隐藏字段作为会话值的 -- 不要将实际值存储在隐藏字段中。
  • 但是,如果您只是使用隐藏字段,您需要注意更改和提交是微不足道的。

标签: c# asp.net session


【解决方案1】:

许多网站(包括我的 DNS 提供商和许多银行)所做的只是将会话标识符保留在 URL 参数中而不是 cookie 中,并让页面之间的各种获取方式将 id 传递到下一页.

这会导致会话仅在每个单独的选项卡打开时才存在,这意味着每个选项卡都有一个不使用 cookie 的唯一会话。

在 ASP.NET 中,使用存在于每个页面上的隐藏字段来持续传递恒定的会话标识符是一种很好且简单的方法。

如果您出于安全原因想要阻止人们使用浏览器后退按钮或浏览器历史记录,您可以做的另一件事是在每次导航发生时对标识符进行哈希处理。这是许多网上银行服务使用的方法。请注意,虽然这种方法非常安全,但可能会让用户感到沮丧。

【讨论】:

    猜你喜欢
    • 2019-01-17
    • 2011-02-19
    • 2019-04-27
    • 2011-04-27
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多