C# 在.net中重新生成会话后会话数据丢失

C# 在.net中重新生成会话后会话数据丢失,c#,asp.net,session,C#,Asp.net,Session,我在登录页面上重新生成了会话,并在一些变量中设置了session[“xx”}=“yy”。 但在重定向到主页后,会话数据丢失。 有人能告诉我这个问题吗?这是会话重新生成的代码 SessionIDManager manager = new SessionIDManager(); manager.RemoveSessionID(System.Web.HttpContext.Current); var newId = manager.CreateSessionID(System.Web.HttpCont

我在登录页面上重新生成了会话,并在一些变量中设置了session[“xx”}=“yy”。 但在重定向到主页后,会话数据丢失。 有人能告诉我这个问题吗?这是会话重新生成的代码

SessionIDManager manager = new SessionIDManager();
manager.RemoveSessionID(System.Web.HttpContext.Current);
var newId = manager.CreateSessionID(System.Web.HttpContext.Current);
var isRedirected = true;
var isAdded = true;
manager.SaveSessionID(System.Web.HttpContext.Current, newId, out isRedirected, out isAdded);

创建和设置新sessionId时,旧会话将无法与新sessionId一起使用。 所以,首先需要销毁会话cookie,然后在重定向到登录页面之前重新创建一个新的sessionID。 您可以尝试以下方法:

Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
SessionIDManager manager = new SessionIDManager();
manager.RemoveSessionID(System.Web.HttpContext.Current);
var newId = manager.CreateSessionID(System.Web.HttpContext.Current);
var isRedirected = true;
var isAdded = true;
manager.SaveSessionID(System.Web.HttpContext.Current, newId, out isRedirected, out isAdded);
Response.Redirect("Login page url");