在 .NET 應用程式中啟用跨框架會話共享
問題:
部署在同一台伺服器上的兩個 Web 應用程式(一個基於 .NET 2.0 構建,另一個基於 .NET 3.5 (MVC2))需要共用會話狀態。 儘管 StateServer
模式和連接字串配置相同,MVC2 應用程式仍無法檢索 .NET 2.0 應用程式啟動的會話。
解:
本質上不支援使用不同框架的 .NET 應用程式之間的直接會話共用。集中式會話管理解決方案或資料庫支援的會話儲存是必要的。
實作:
採用兩個應用程式皆可存取的共用會話提供者。 內建的 SQL Server 會話提供者是適當的選擇。 配置兩個應用程式的 web.config
文件,如下所示:
sessionState
設定:<code class="language-xml"><sessionState mode="SQLServer" sqlConnectionString="..." /></code>
machineKey
設定:<code class="language-xml"><machineKey decryption="AES" validation="SHA1" validationKey="..." /></code>
至關重要的是,兩個應用程式必須連接到同一個 SQL Server 資料庫。 此外,TempGetAppID
預存程序可能需要修改,如相關 MSDN 文件中詳細說明(如果有的話,文件連結將很有幫助)。
透過使用一致的 machineKey
和共享會話提供程序,兩個應用程式都可以成功共享會話密鑰並形成身份驗證 cookie,從而實現跨不同 .NET 框架版本的無縫會話管理。
以上是具有不同框架的兩個 .NET 應用程式如何共用會話狀態?的詳細內容。更多資訊請關注PHP中文網其他相關文章!