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

时间:2016-11-07 08:09:39

标签: c# asp.net session session-management

我有一个很大的疑问

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

  

CODE:

在网页1.aspx.cs

String sess1 = Session.SessionID.ToString();

在webpage2.aspx.cs

String sess2 = Session.SessionID.ToString();

当我加载我的网页1.aspx时,它会显示一个唯一的sessionID,然后导航到webpage2.aspx,它会显示另一个新的唯一会话ID

sessionID(sess1,sess2)应该相同,它会生成不同的sessionID。

我可以为什么?

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

1 个答案:

答案 0 :(得分:1)

原因:

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

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

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

参考SessionId