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?

Bagaimanakah Saya Boleh Berkongsi Keadaan Sesi ASP.NET Antara Borang Web .NET 2.0 dan Aplikasi .NET 3.5 MVC2?

DDD
DDDasal
2025-01-23 21:36:11618semak imbas

How Can I Share ASP.NET Session State Between a .NET 2.0 Web Forms and a .NET 3.5 MVC2 Application?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn