Asp.net session.About未生成新会话

Asp.net session.About未生成新会话,asp.net,session,Asp.net,Session,我正在使用asp.NET3.5 会话.放弃()未使用新的会话ID Session["abc"] = "abc"; Session.Abandon(); //Session id is same as checked in add watch 是的,这是设计的。它将重用相同的会话ID 看 也 是的,这是设计的。它将重用相同的会话ID 看 也 您可以Session.IsNewSession来识别sesiion是否是新的sesiion,ASP.net将重用SessionId,正如建议的那样,您可以通

我正在使用asp.NET3.5

会话.放弃()
未使用新的
会话ID

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

是的,这是设计的。它将重用相同的会话ID


是的,这是设计的。它将重用相同的会话ID


您可以
Session.IsNewSession
来识别sesiion是否是新的sesiion,ASP.net将重用
SessionId
,正如建议的那样,您可以通过编程方式在客户端cookie中将
SessionId
设置为null来解决这个问题

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

您可以使用
Session.IsNewSession
来确定sesiion是否是新的sesiion,而不是使用
SessionId
,ASP.net重用了
SessionId
,正如建议的那样,您可以通过编程方式在客户端cookie中将
SessionId
设置为null来解决这个问题

Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
Response.Redirect(Request.Path);
Session.Clear()
然后清除会话变量,但用户仍保留在同一会话中(例如,如果您不希望他重新登录),并重置其所有特定于会话的数据

会话.放弃()
仅在页面完全执行后生效。因此,当前名为放弃的页面仍有相同的会话。所有下一次浏览器调用都将在一个新会话上进行。也就是说,您丢失了该特定会话,用户将获得一个新会话密钥。

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

会话.放弃()
仅在页面完全执行后生效。因此,当前名为放弃的页面仍有相同的会话。所有下一次浏览器调用都将在一个新会话上进行。即,您丢失了该特定会话,用户将获得一个新会话密钥。

Response.Redirect(Request.Path);还需要添加为最后一行。Response.Redirect(Request.Path);也需要添加为最后一行。