加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在浏览器关闭并重新打开后维护相同的会话

发布时间:2020-12-16 09:38:16 所属栏目:asp.Net 来源:网络整理
导读:我是asp.net的新手.我登录该站点并为userid创建会话,将此会话视为s1. 将cookie(c1)添加到客户端站点,并添加3天的到期时间. 假设如果我关闭浏览器而没有注销,我再次使用相同的网址然后我发现会话为空但我得到了cookie(c1)然后我创建了一个新的会话.但是会话s1
我是asp.net的新手.我登录该站点并为userid创建会话,将此会话视为s1.
将cookie(c1)添加到客户端站点,并添加3天的到期时间.

假设如果我关闭浏览器而没有注销,我再次使用相同的网址然后我发现会话为空但我得到了cookie(c1)然后我创建了一个新的会话.但是会话s1仍然占用服务器上的内存.这意味着这次两个会话在占用内存的同一台服务器上.

我想将session s1与cookie(c1)一起使用 – 是否可能.或者我想在第二次请求时删除会话s1.

我使用的代码是:

if (Session["UserInfo"] != null)
    {
      // code 
    }
    else
    {
        HttpCookie HT = Request.Cookies["User"];
        if (HT != null)
        {
           Session["UserInfo"] = HT["UserName"]; //Here new session is created while previous is already exist on server
        }
        else
        {
           //code
        }
    }

解决方法

IE在每个请求上生成新的会话ID.因此,当您关闭浏览器时,旧的会话ID将丢失,因此浏览器会发送具有新会话ID的请求.这就是为什么你无法获得会话价值的原因.

但是在服务器上它占用服务器内存,在会话超时后由服务器清除.

Firefox会在每个请求上发送具有相同会话ID的请求,即使您关闭浏览器选项卡,也可以获取会话ID.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读