ホームページ > バックエンド開発 > C++ > .NET 2.0 Web フォームと .NET 3.5 MVC2 アプリケーションの間で ASP.NET セッション状態を共有するにはどうすればよいですか?

.NET 2.0 Web フォームと .NET 3.5 MVC2 アプリケーションの間で ASP.NET セッション状態を共有するにはどうすればよいですか?

DDD
リリース: 2025-01-23 21:36:11
オリジナル
614 人が閲覧しました

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

ASP.NET でのアプリケーション間セッション共有: .NET 2.0 Web フォームおよび .NET 3.5 MVC2 ソリューション

はじめに

複数の ASP.NET アプリケーション間で一貫したセッション データを維持することで、データ管理とアプリケーション間の通信が簡素化されます。この記事では、同じサーバー上にある .NET 2.0 Web フォーム アプリケーションと .NET 3.5 MVC2 アプリケーションの間でセッションを共有するという共通の課題に対処します。

問題: セッションキーの不一致

同じ stateConnectionString 設定で StateServer モードを使用すると、セッション キーは正常に転送されますが、MVC アプリケーションはセッション データの取得に失敗します (結果として null sessionKey になります)。

解決策: SQL Server のネイティブ セッション状態の活用

推奨される解決策には、SQL Server のネイティブ セッション状態管理を利用するように両方のアプリケーションを構成することが含まれます。

web.config の構成:

両方のアプリケーションの web.config ファイルを次のように変更します:

<code class="language-xml"><sessionState mode="SQLServer" sqlConnectionString="..."/></code>
ログイン後にコピー

指定された SQL Server インスタンスが両方のアプリケーションからアクセス可能であること、および必要なセッション状態データベースが存在することを確認してください。

ストアド プロシージャの調整:

セッション状態データベース内の TempGetAppID ストアド プロシージャを調整して、接続文字列からアプリケーション名を動的に取得します。これにより、名前が一致するアプリケーションがセッションを共有できるようになります:

<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>
ログイン後にコピー

マシンキーの一貫性の確保:

両方のアプリケーションは、それぞれの machineKey ファイルで定義された同じ web.config 設定を使用する必要があります。

<code class="language-xml"><machineKey decryption="AES" validation="SHA1" validationKey="SOMEKEY"/></code>
ログイン後にコピー

これらの変更を実装することで、両方のアプリケーションがセッション データをシームレスに共有し、同一のセッション キーを利用し、アプリケーション間で一貫したフォーム認証を維持できるようになります。

以上が.NET 2.0 Web フォームと .NET 3.5 MVC2 アプリケーションの間で ASP.NET セッション状態を共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート