ASP.NET: Plusieurs objets de Session dans une seule application

J'en ai un ASP.NET web application en cours d'exécution à la racine du serveur web qui offre plusieurs (même) les sites web à l'aide de la redirection d'URL. Pour donner un exemple réel:

http://webshopserver/company1/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company1
http://webshopserver/company2/ProductList.aspx -> http://webshopserver/ProductList.aspx?showProductsFrom=company2
...

Cela fonctionne très bien; le seul problème est que, évidemment, toutes ces boutiques différentes partagent le même objet session (depuis le InProc session manager stocke l'objet de session dans le domaine d'application). Je voudrais les magasins de l'entreprise1 et entreprise2 différents objets de session, de sorte que, par exemple, si un utilisateur ouvre les boutiques de l'entreprise1 et entreprise2 dans les différents onglets de la même fenêtre de navigateur, les articles mis dans le panier de l'entreprise1 de ne pas s'afficher dans le panier de l'entreprise2.

Il ya quelques approches pour résoudre ce problème que je n'aime pas:

  • Créer ma propre Session de l'objet qui encapsule le tout dans une HashMap<nom de la Société, quelle que soit>, puis la stocke dans la "vraie" session: Qui casse tout le code existant qui utilise l'objet session.
  • Utiliser des Url comme http://company1.webshopserver/ et un enregistrement DNS générique, parce que le cookie de session est liée au domaine: C'est moche (parce que le monde réel équivalent de "webshopserver" est déjà assez long).
  • Écrire ma propre Session Fournisseur de: ce serait un peu comme de réinventer la roue.
  • Créer une application IIS distincts pour chaque entreprise: ne fonctionne pas, parce que la création de nouvelles entreprises devrait être possible grâce à quelque chose comme http://webshopserver/CreateYourOwnWebshop.aspx sans aucune intervention humaine (l'admin du serveur) l'intervention par la suite.

Je pense plus de la solution le long des lignes de:

Donc, aucune information sur la manière d'atteindre un de ces points (ou peut-être une solution différente en tout) serait utile.

  • Désolé, j'ai raté le no-go sur des applications IIS. Est-ce une auto hébergé application ou de l'exécution sur un environnement partagé où vous venez d'avoir accès au panneau de contrôle?
  • Pas de problème, merci pour votre réponse de toute façon. C'est (actuellement) un auto-hébergé app.
InformationsquelleAutor Heinzi | 2009-04-06