2014-09-04 58 views
-1

我有「web1(http:// localhost/web1)」和「web2(http:// localhost/web2)」,但我需要將會話從web1發送到web2。我需要在web1到web2之間發送會話

我嘗試在「web.config」中使用「mode = SQLServer」和「mode = StateServer」中未完成的「sessionstate」。因爲我得到的錯誤是「無法序列化會話狀態。在'StateServer'和'SQLServer'模式下」。

所以我需要任何發送會話從「web1」到「web2」的方法,然後我需要在會話中保持原始值。

我的環境。 C#.net 4.0,SQL Server 2008,IIS 7.5

+2

爲什麼不使用數據庫?你有SQL Server 2008. – Donal 2014-09-04 19:00:29

+1

web1和web2是不同的web應用程序,這意味着不同的應用程序域,他們的會話信息將無法使用。您最好將值存儲在未綁定到會話的數據庫表中。 – 2014-09-04 19:00:58

+0

你是否熟悉Web中的QueryString ..?我假設你有這個項目的src也顯示你迄今爲止已經做了什麼你自己..如果他們的網站居住在同一個域 – MethodMan 2014-09-04 19:01:21

回答

1

默認ASP.Net會話狀態不可能共享狀態:所有會話狀態提供程序(內存中,SQL和狀態服務器)分區會話按會話ID + applicationID從而使它不可能直接共享會話狀態。

如果您需要共享少量的數據cookie可能是可以接受的方法(可能需要在那裏加密數據)。或者,您可以將數據服務器端存儲在您的自定義數據庫中,這兩個應用程序均可訪問,並使用自定義ID傳遞用戶/

+0

謝謝阿列克謝列文科夫。 我會盡力按照你的方法。 – codeman 2014-09-05 03:59:36