アプリケーション間でのセッションの共有: ASP.NET セッション状態サービスの活用
はじめに
Web アプリケーションでは、多くの場合、ユーザーが自分の情報や設定にシームレスにアクセスできるように、複数のアプリケーション間でセッション データを共有する必要があります。この記事では、ASP.NET セッション状態サービスを利用して、同じサーバー上でホストされている 2 つの異なる Web アプリケーション間でセッション共有を実現する方法について説明します。
.NET 2.0 と MVC2 アプリケーションの間でセッションを共有する
.NET 2.0 Web フォーム アプリケーションと .NET 3.5 MVC2 アプリケーションの間でセッションを共有する最初の試みは、Web フォーム アプリケーションから MVC アプリケーションにセッション キーを公開することでした。ただし、このアプローチには、MVC アプリケーションにセッションをロードできないという問題があります。
解決策: SQL Server のネイティブ セッション状態と共有マシン キーを使用します
この課題を克服するには、両方のアプリケーションで SQL Server に保存されているネイティブ .NET セッション状態を使用する必要があります。さらに、共有マシン キーを使用して、アプリケーションがセッション データを一貫して暗号化および復号化できるようにします。
Web.config 構成
両方のアプリケーションの web.config ファイルで、セッション状態を次のように構成します:
<code class="language-xml"><sessionstate mode="SQLServer" sqlconnectionstring="..."></sessionstate> <machinekey decryption="AES" validation="SHA1" validationkey="SOMEKEY"></machinekey></code>
データベース構成
両方のアプリケーションからアクセスできる SQL Server インスタンス上に必要なセッション状態データベースを作成します。 aspnet_regsql.exe コマンドを実行してデータベースを初期化します。
ストアド プロシージャを変更する
セッション状態データベースの TempGetAppID ストアド プロシージャに若干の変更を加えました:
<code class="language-sql">SET @appName = LOWER(@appName)</code>
結果
SQL Server に保存されているネイティブ セッション状態を使用し、マシン キーを共有することにより、両方のアプリケーションが同じセッション データにアクセスできます。これにより、アプリケーション間でセッション情報をシームレスに共有できるようになります。
以上がASP.NET セッション状態サービスはどのようにしてアプリケーション間のセッション共有を可能にしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。