簡體   English   中英

.net中的會話重新生成后,會話數據丟失

[英]session data lost after session regeneration in .net

我已經在登錄頁面上重新生成了會話,並設置了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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM