当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET会话 - 如何通过到期或初次访问来判断会话是否是新的?

如何解决《ASP.NET会话-如何通过到期或初次访问来判断会话是否是新的?》经验,为你挑选了1个好方法。

我们有一个搜索结果页面,用户可以通过多种方式点击.90%的方式将设置"搜索条件"会话对象,结果页面将使用该对象来检索搜索结果.

当找不到会话对象时,我们通常会向用户显示"无效搜索"消息,并为他们提供指向主搜索页面的链接.

例外情况是用户点击具有搜索结果页面的网页作为其默认页面(我们使用.NET的主题为我们的网站提供私有标签,使用我们的关联公司的颜色和徽标进行外观设计).如果搜索结果页面是站点的默认页面,则在没有会话条件时会执行特殊搜索.

这在我们的测试中工作得相当好,但是我们想要处理一个边缘情况:当某人在搜索结果页面(来自搜索页面)时会话到期,然后他们点击下一页结果,他们将获得此特殊搜索,而不是"过期会话"消息.

这是我们使用的基本格式,其中searchCriteria是从session设置的.

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

有没有办法我们可以检查内部if块中的Session,看看用户的会话是否因为现有的到期而是新的?或者浏览器是否会在会话过期时丢弃会话cookie?

是否存在浏览器差异?有人将过期的会话cookie返回给服务器,而其他人在过期时删除它们吗?还是一致的?



1> kd7..:

这是一个很好的文章是基于关闭的这一个.我想你会在这里找到你的答案(特别是第二篇文章的第2页)

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有