gpt4 book ai didi

asp.net-mvc - Asp.Net MVC 2 中的 session 已过期

转载 作者:行者123 更新时间:2023-12-02 03:43:05 25 4
gpt4 key购买 nike

有些用户关闭所有浏览器,然后再次打开 IE8,然后在登录页面中收到“Session Expired”消息,这很奇怪,而且只是有时会发生。

显示该消息的条件是:

var sessionTimedOut = Session.IsNewSession && Request.Headers["Cookie"] != null && Request.Headers["Cookie"].Contains(ASPNET_SESSION_COOKIE);

通常,当浏览器关闭时,所有 cookie 都会消失,因为这是这些 cookie 的范围。

那么什么可能导致这种情况成立呢?

最佳答案

您是否将值 ASPNET_SESSION_COOKIE 自己保存到 session 中?...或者只是依赖于 ASP.net 内置的 session 处理程序?如果您不是自己保存,则以下情况可能会导致问题。

我认为您的条件未正确配置以检查过期 session 。原因是 -

  1. ASP.Net 默认情况下将 Sessions 保存在 Cookie 中,因此每当创建新 session 时,Cookie 也会创建。

  2. 让我们考虑一下这样的场景: session 已过期,然后发出请求(即登录页面的 GET)ASP.net 正在检查 CookieSession 并发现它需要创建一个新 session 。因此,它创建一个 Session 并保存 cookie。

  3. 再一次,让我们考虑一下,这是某人第一次看到该页面,同样,会发生与 2 相同的情况。条件始终为 true。

  4. 您需要在 Cookie/ session 中保存一些自定义 Cookie/Session 值,以便您可以再次检查。

我非常怀疑,这种情况 -

Session.IsNewSession && Request.Headers["Cookie"] != null && Request.Headers["Cookie"].Contains(ASPNET_SESSION_COOKIE); 

永远不会是假的,除非您正在使用或检查它,在 ASP.Net 处理或检查 session 之前。

关于asp.net-mvc - Asp.Net MVC 2 中的 session 已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23540615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com