ASP.NET Session与Cookie过期

时间:2016-07-06 17:49:53

标签: c# asp.net visual-studio

我的ASP.NET Web窗体应用程序具有以下配置设置

<sessionState mode="StateServer" timeout=60" />

我相信,在创建新会话时,

  1. 在服务器端(状态服务或进程内)创建存储桶以存储此用户会话的数据,可通过唯一ID进行识别
  2. 将一个名为(ASP.NET_SessionId)的cookie发送到具有唯一ID的浏览器。
  3. 查询,

    1. 如何在服务器端设置/控制会话的过期时间(上面的#1)
    2. 如何在客户端设置/控制cookie的过期时间(上面#2)
    3. 通过上述配置设置,** Firefox **上的cookie过期设置为(SESSION),浏览器关闭时cookie会丢失,而** Chrome **上的过期设置为(1年) )。如何在asp.net应用程序中控制这些持续时间?我想将Firefox的过期时间设置为1年

2 个答案:

答案 0 :(得分:0)

会话cookie由Session和sessionState对象设置/控制服务器端。

通过设置会话超时,还会设置会话cookie,并在每个请求上相互匹配/检查,以评估其中一个是否已过期。

我建议在这里阅读它们,因为它可以发布很多内容

答案 1 :(得分:0)

在ASP.Net中,我们不应该直接更改或修改Session cookie,因为除了Session Id之外没有其他信息。看看屏幕截图。

如果您想增加或减少会话超时,只需像问题中那样修改sessionState

enter image description here

  

我想将Firefox的过期时间设置为1年

您不能也不应该将会话状态到期时间设置为1年。

您似乎对Forms authentication timeout vs sessionState timeout感到困惑。