8

私は、同じドメイン上の cms アプリケーションとオンライン ストア アプリケーションの間でセッションを共有する必要があるサイトで作業しています。

mydomain.com

store.mydomain.com

私はそれでいくつかの進歩を遂げました、そしてそれは私のローカルビルドで動作します

localhost/cms

localhost/store

基本的に、私はこの記事で提案されていることを行いました

http://blogs.msdn.com/toddca/archive/2007/01/25/sharing-asp-net-session-state-across-applications.aspx

TempGetAppID ストアド プロシージャをハッキングして、同じアプリケーション ID を返しました (1)。これは、「abv5d2urx1asscfwuzw3wp4500000001」のような ID を持つセッションを作成するため、機能しているように見えます。これは私が期待するものです。

私の問題は、テスト環境にデプロイすると、2 つのサイト間を移動するときに新しいセッションが作成されることです。したがって、cms サイトでセッションを開始すると、ストアに移動すると、新しいセッションが作成されます。これらは、IIS7 で 2 つの異なる Web サイトとして設定されています。

両方のサイトの web.config ファイルでは、 要素と 要素はどちらも同じで、次のようになっています (機密情報を除く)。

これが機能しない理由を誰かが考えていますか? フォーム認証を 2 つのサイトで共有していますが、問題なく動作しています。どんな助けやアイデアも大歓迎です!

どうもありがとう

デイブ

4

2 に答える 2

7

私たちが抱えていた問題は、2つのアプリケーションでセッションCookieドメインが異なって設定されていたということだったようです。これは、各アプリケーションが独自のsessionIdを生成したことを意味します。

<httpCookies domain=".ourdomain.co.uk" /> web.configに追加 しましたが、これで解決したようです。助けてくれてありがとう、これが将来誰か他の人に役立つことを願っています。

于 2010-03-17T10:37:23.520 に答える
6

セッション ID をキーとして使用して、SQL サーバー上のすべてのセッション データを永続化します。次に、指すセッション ID を含む Cookie を使用.mydomain.comして、両方のサブドメインで使用できるようにします。

この15 秒の記事では、このテーマを取り上げており、まったく異なるドメイン間でセッションを共有する手法も示しています。

于 2010-03-08T17:33:14.387 に答える