session.abandon没有生成新会话

时间:2011-12-13 05:18:10

标签: asp.net session

我正在使用asp.net 3.5

Session.Abandon()未使用新的SessionId

Session["abc"] = "abc";
Session.Abandon(); //Session id is same as checked in add watch

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:3)

您可以Session.IsNewSession识别新的内容,而不是使用SessionId,ASP.net重新使用SessionId,按照建议您in the KB Article通过程序化的方式将客户端cookie中的SessionId设置为null。

Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
Response.Redirect(Request.Path);

答案 2 :(得分:2)

Session.Clear()然后会话变量清除但用户仍然在同一会话中(例如,如果您不希望他重新登录)并重置所有会话特定数据。

Session.Abandon()仅在页面完全执行后生效。因此,调用Abandon的当前页面仍然具有相同的会话。所有下一次浏览器调用都将在新的Session.i.e上丢失该特定会话,用户将获得新的会话密钥。