代码之家  ›  专栏  ›  技术社区  ›  Jeff

ASP.NET会话-如何判断会话是否因过期或首次访问而成为新会话?

  •  2
  • Jeff  · 技术社区  · 17 年前

    当找不到会话对象时,我们通常会向用户显示一条“无效搜索”消息,并给他们一个指向主搜索页面的链接。

    这在我们的测试中运行得相当好,但有一个我们希望处理的边缘情况:当某个会话在搜索结果页面(来自搜索页面)上过期时,他们然后单击下一个结果页面,他们将得到此特殊搜索,而不是“过期会话”消息。

    if (searchCriteria == null)
    {
        if (/*Check if this is the default url for this site*/)
        {
          //Preform special search
        }
        else
        {
          //Display 'session expired message'
        }
    }
    

    是否有一种方法可以检查内部if块中的会话,以查看用户的会话是否由于现有会话过期而成为新会话?或者浏览器只是在会话cookie过期时扔掉它们?

    浏览器有什么不同吗?是否有人将过期的会话cookie返回到服务器,而其他人在过期时删除它们?或者它是一致的?

    2 回复  |  直到 17 年前
        1
  •  5
  •   Ta01    17 年前

    这是一个极好的例子 article 这是基于 this one

        2
  •  1
  •   Tony Lee    17 年前

    bnkdev的答案使用这个事实来检测新的vs过期,通过查看cookie是否已经设置。它简单易用,可能对您有用,但它仅在会话ID使用cookie时有效。这对没有厨师的课程不起作用。