【问题标题】:Set Sessionstate cookieless="true" in asp .Net, is the sessions state maintained?在 asp .Net 中设置 Sessionstate cookieless="true",会话状态是否保持?
【发布时间】:2015-03-24 12:58:02
【问题描述】:

如果在浏览器中关闭 cookie 或在 web.config 中的 sessionmode 标签中添加 cookieless="true",如何在 asp.Net 中维护会话状态?

以下标签在 web.config 中显示 cookieless="true"

<sessionState mode="InProc"
  cookieless="true"
  timeout="30"/>

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    ASP.NET 框架将unique id 插入到 URL,您可以通过禁用 cookie 或将 cookieless 属性设置为 true 来检查这一点。

    根据MSDN:-

    默认情况下,SessionID 值存储在非过期会话中 浏览器中的cookie。

    如果您指定cookieless="true",则:

    ASP.NET 通过自动插入来维护无 cookie 会话状态 页面 URL 中的唯一会话 ID。

    【讨论】:

    • 嘿 Rahul,如果 sessionId 保存在 cookie 中,它是持久的还是非持久的 cookie?在 MSDN 中它被指定为持久性权利?
    • @MGeorge - 是的,会话 cookie 默认是持久的,默认时间是 20 分钟。
    【解决方案2】:

    答案是肯定的,它仍然会通过 URL 保持会话。它将会话的唯一标识符附加到 URL,该唯一标识符存储在 cookie 中,用于 cookieless = false。

    网址将如下所示 - http://yourserver/folder/(session ID here)/default.aspx

    活生生的例子 -

    http://localhost:2677/WebSite1/(S(3abhbgwjg33aqrt3uat2kh4d))/cookielesssessiondetection.aspx

    这里3abhbgwjg33aqrt3uat2kh4d 是会话ID。

    【讨论】:

    • 我想知道是否仍然值得这样做以便会话变量在 IE 中工作。我想人们在 2020 年仍然使用 IE,但我不知道为什么。
    猜你喜欢
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2011-09-11
    • 2012-11-14
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多