Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Berkongsi Keadaan Sesi ASP.NET Antara Borang Web .NET 2.0 dan Aplikasi .NET 3.5 MVC2?
Perkongsian Sesi Rentas Aplikasi dalam ASP.NET: Borang Web .NET 2.0 dan Penyelesaian .NET 3.5 MVC2
Pengenalan
Mengekalkan data sesi yang konsisten merentas berbilang aplikasi ASP.NET memudahkan pengurusan data dan komunikasi antara aplikasi. Artikel ini menangani cabaran biasa: sesi perkongsian antara aplikasi Borang Web .NET 2.0 dan aplikasi .NET 3.5 MVC2 yang berada pada pelayan yang sama.
Masalahnya: Ketakkonsistenan Utama Sesi
Apabila menggunakan mod StateServer dengan tetapan stateConnectionString
yang serupa, kunci sesi berjaya dipindahkan, namun aplikasi MVC gagal untuk mendapatkan semula data sesi (mengakibatkan sessionKey
batal).
Penyelesaian: Memanfaatkan Keadaan Sesi Asli Pelayan SQL
Penyelesaian yang disyorkan melibatkan konfigurasi kedua-dua aplikasi untuk menggunakan pengurusan keadaan sesi asli SQL Server.
Mengkonfigurasi web.config:
Ubah suai web.config
fail kedua-dua aplikasi seperti berikut:
<code class="language-xml"><sessionState mode="SQLServer" sqlConnectionString="..."/></code>
Pastikan contoh SQL Server yang ditentukan boleh diakses oleh kedua-dua aplikasi dan pangkalan data keadaan sesi yang diperlukan wujud.
Menyesuaikan Prosedur Tersimpan:
Laraskan TempGetAppID
prosedur tersimpan dalam pangkalan data keadaan sesi untuk mendapatkan semula nama aplikasi secara dinamik daripada rentetan sambungan. Ini membolehkan aplikasi dengan nama yang sepadan berkongsi sesi:
<code class="language-sql">@appId int OUTPUT AS ... -- Dynamically obtain the application name from the connection string DECLARE @connStrAppName nvarchar(50) SET @connStrAppName = APP_NAME() ...</code>
Memastikan Kekunci Mesin Konsisten:
Kedua-dua aplikasi mesti menggunakan tetapan machineKey
yang sama, ditakrifkan dalam fail web.config
masing-masing:
<code class="language-xml"><machineKey decryption="AES" validation="SHA1" validationKey="SOMEKEY"/></code>
Dengan melaksanakan pengubahsuaian ini, kedua-dua aplikasi boleh berkongsi data sesi dengan lancar, menggunakan kunci sesi yang sama dan mengekalkan pengesahan borang yang konsisten merentas aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berkongsi Keadaan Sesi ASP.NET Antara Borang Web .NET 2.0 dan Aplikasi .NET 3.5 MVC2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!