【问题标题】:Separate sessions once opening the same web page on two different tabs of the same browser Asp.net C#在同一浏览器的两个不同选项卡上打开同一网页后,单独的会话 Asp.net C#
【发布时间】:2014-06-24 07:09:03
【问题描述】:

是否可以在同一浏览器的两个不同选项卡上打开同一网页后创建单独的会话

<sessionState mode="InProc" cookieless="UseUri"></sessionState>

我不想像

那样显示网址
http://localhost/SampleWeb/(S(afdg3ires1ik0lmjm3pkjtzl))/default.aspx  

【问题讨论】:

    标签: c# asp.net session


    【解决方案1】:

    这取决于你的实现 -

    1. 如果您正在使用浏览器自己创建的 cookie 会话并在您的应用程序中使用它,那么 NO。这不可能。因为这取决于浏览器,并且浏览器通常使用相同的会话(保存在一个 cookie 中,一个站点只存在一个 cookie 命名空间)用于多个选项卡。

    2. 但如果您使用 cookieless 会话并使用会话密钥作为 url 参数,那么这是可能的。在这种情况下,您可能必须实现或使用您自己的自定义会话管理器来管理会话。

    ASP.Net 可能有一个 Cookieless 会话管理系统,但我以前没有使用过那个。你可能想试试。您可以在此处找到文档 -

    Cookieless Session

    如果您使用无 cookie 会话,则会话密钥会附加到 url,因此您可以将不同的选项卡视为不同的浏览器选项卡,因此这可能对您有用。因为在这种情况下,浏览器无法识别这两个站点是相同的站点并且应该使用相同的会话,因为它们没有使用 cookie。

    【讨论】:

    • 但是是否可以在无 cookie 会话的 URL 中隐藏会话名称?
    • 您不能隐藏它,因为它是一个查询参数,最好使用 Md5 哈希或 SHA 哈希或使用单独的表仅存储与会话关联的用户,然后分配该会话 ID 并使用它在 url 中,这样看到它的用户就不会从中得到任何东西。
    猜你喜欢
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 2014-05-19
    • 2019-05-02
    • 1970-01-01
    • 2015-03-25
    相关资源
    最近更新 更多