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
Lepaskan: 2025-01-23 21:36:11
asal
670 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan