2016-11-07 91 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

相關問題