我是asp.net的新手.我登录该站点并为userid创建会话,将此会话视为s1.
将cookie(c1)添加到客户端站点,并添加3天的到期时间.
将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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。