URLリダイレクトを使用して複数の(類似の)Webサイトを提供するWebサーバールートで1つのASP.NET Webアプリケーションを実行しています。実世界の例を与える:ASP.NET:単一のアプリケーション内の複数のセッションオブジェクト
http://webshopserver/company1/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company1
http://webshopserver/company2/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company2
...
これは非常にうまく動作します。唯一の問題は、InProcセッションマネージャがセッションオブジェクトをAppDomainに格納しているため、これらの異なる店舗のすべてが同じセッションオブジェクトを共有することは明らかです。私はcompany1とcompany2の店舗に異なるセッションオブジェクトを持たせたいと思います。たとえば、ユーザーが同じブラウザウィンドウの異なるタブでcompany1とcompany2の店舗を開くと、company1のショッピングカートに入れられた商品が会社2のカートに現れません。
私は好きではない。この問題を解決するために、いくつかの明白なアプローチがあります。
- は、それを格納し、その後何>と、HashMapの<会社名にすべてをカプセル化し、私自身のSessionオブジェクトを作成します。 "real" session:セッションオブジェクトを使用する既存のコードがすべて破損します。
- セッションIDのCookieがドメインに結びついているため、http://company1.webshopserver/のようなURLとワイルドカードDNSレコードを使用します。実際には「webshopserver」に相当するため、これは醜いです。
- 私自身のカスタムセッションプロバイダを作成:それは車輪を再発明するようなものでしょう。
- 企業ごとに別々のIISアプリケーションを作成する:新しい企業を作成するには、http://webshopserver/CreateYourOwnWebshop.aspxのようなものを使用する必要があります。後で人的(サーバー管理者)の介入は必要ありません。
私はの線に沿って液のより考えています:URLに応じて、異なるのAppDomainを使用するようにASP.NETを伝えるhttp://webshopserver/<companyName>/か
- を。
したがって、これらの点の1つ(または別の解決法)を達成する方法に関する情報は役に立ちます。
申し訳ありませんが、私は別のIISアプリケーションでno-行くを逃しません。これは自己ホスト型のアプリですか、またはコントロールパネルにアクセスできる共有環境で動作していますか? – Kev
問題ありません、とにかくあなたの答えに感謝します。それは(現在)自己ホスト型のアプリです。 – Heinzi