【发布时间】:2013-01-09 22:40:21
【问题描述】:
我是 asp.net 的新手。我登录该站点并为用户 ID 创建了会话,将此会话视为 s1。 添加 cookie (c1) 到客户端站点,有效期为 3 天。
假设如果我在没有注销的情况下关闭浏览器并再次使用相同的 url,那么我发现会话为空,但我得到了 cookie (c1),然后我创建了一个新会话。但是会话 s1 仍然占用服务器上的内存。意味着这次两个会话在同一台服务器上占用内存。
我想将会话 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
}
}
【问题讨论】:
-
您能提供更多信息吗?您正在使用哪种会话(InProc、Sql、状态服务)?您确定您正在谈论的cookie是与会话相关的,而不是身份验证cookie吗?通常你设置会话服务器端超时,客户端cookie在浏览器关闭时过期。
-
我正在使用 inproc 会话。在这里我明确地为下次登录创建 cookie,我想重用服务器内存,因为会话已经在服务器上创建,为什么我应该再次创建新会话。