2016-11-07 43 views
1

我有一个很大的疑问为什么会话ID在所有网页中都不一样?

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

CODE:

在webpage1.aspx.cs

String sess1 = Session.SessionID.ToString(); 

在webpage2.aspx.cs

String sess2 = Session.SessionID.ToString(); 

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

会话ID(sess1,sess2)都应该是相同的,它会生成不同的会话ID。

我可以为什么?

,以及如何维护会话ID在所有的aspx页面

回答

1

原因:

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

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

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

参照SessionId

相关问题