为什么会话ID在所有网页中不一样?

本文关键字:网页 不一样 会话 ID 为什么 | 更新日期: 2023-09-27 18:16:54

我有一个很大的疑问

为什么会话ID在所有网页上都不一样?

代码:

在webpage1.aspx.cs

String sess1 = Session.SessionID.ToString();
在webpage2.aspx.cs

String sess2 = Session.SessionID.ToString();

当我加载我的网页。aspx,它显示一个唯一的sessionID,并导航到webpage2。它显示另一个新的唯一的sessionID

两个sessionid (sess1, sess2)应该是相同的,它生成不同的sessionid

为什么??

以及如何在所有aspx页面中维护sessionID

为什么会话ID在所有网页中不一样?

原因:

当使用基于cookie的会话状态时,ASP。NET在使用session对象之前不会为会话数据分配存储空间。因此,在访问会话对象之前,将为每个页面请求生成一个新的会话ID。如果应用程序需要整个会话的静态会话ID,则可以在应用程序的Global中实现Session_Start方法。asax文件并将数据存储在Session对象中以固定会话ID,或者您可以使用应用程序的其他部分的代码显式地将数据存储在Session对象中。

你必须像这样使用Session["Id"] = 0;

如果你不在c#代码中使用它,它将在每次请求时生成新的

引用SessionId