ASP.NET 会话与 Cookie 过期

问题描述 投票:0回答:2

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

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

我相信,当创建一个新会话时,

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

查询,

  1. 如何在服务器端设置/控制会话的过期时间(上面#1)
  2. 如何在客户端设置/控制 cookie 的过期时间(上面#2)
  3. 通过上述配置设置,**Firefox** 上的 cookie 有效期设置为(SESSION),并且当浏览器关闭时 cookie 会丢失,而在 **Chrome** 上,有效期设置为(1 年)。如何从 ASP.NET 应用程序中控制这些持续时间?我也想将 Firefox 的有效期设置为 1 年
c# asp.net visual-studio
2个回答
0
投票

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

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

我也想将 Firefox 的有效期设置为 1 年

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

您似乎混淆了表单身份验证超时与会话状态超时


0
投票

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

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

我建议在这里阅读有关它们的内容,因为要发布的内容太多了

© www.soinside.com 2019 - 2024. All rights reserved.