2012-02-23 17 views
2

ローカルiisで2つの非常に単純なアプリケーション(ASP .NET)とホストを作成しました。 両方のアプリが同じブラウザで2つのタブで開かれています。最初のアプリケーション(AppA)では、セッション(Session ["name"] = "john")にデータを保存し、2番目のアプリケーション(AppB)ではこの値を読みました。 (FireCookieで)クッキーを探索すると、両方のアプリケーションのSessionIDが同じであることがわかりました。また、両方のアプリでSessionIDが印刷され、同じです。セッションから(正しいキーを使用して)AppBでこの値を取得しようとすると、セッションは空ですが、セッションIDは同じです。 AppAセッションのデータはまだ生きています。セッションIDは同じですがセッションデータは同じではありません

両方のアプリが(同じセッションIDを使用して)ウェブサーバーにデータを返すよう要求すると、セッションデータが異なる理由を教えてください。

答えて

2

異なるアプリケーションであるため、セッションは共有されません。同じidを持っていても、お互いを「知っている」わけではありません。可能な解決方法については、この記事を参照してください。http://www.codeguru.com/article.php/c19357

+0

段落のセッションIDのこの記事http://www.codeproject.com/Articles/32545/Exploring-Session-in-ASP-Net を見てください。クライアントがデータを要求すると、ASP.NETはセッションIDを探し、対応するデータを取得します。 – SilverDeveloper

+0

@ SilverDeveloper:重要なことは、2つのアプリケーションが完全に異なるセッションストアを持つことです。特定のセッションプロバイダでは、これを行うことができます(例えば、SQLベースのものであれ、何かのものであれば)。一般に、アプリケーションとセッションIDでセッションデータを効果的にキーイングしています。 – Chris

+1

おそらくセッションをデータベースに格納するのがこの場合のアイデアですか? – Cerveser

関連する問題