Forums Neueste Beiträge
 

Eine Anwendung - mehrere Sessions je nach virt. Verzeichnis gewuenscht

04/03/2009 - 00:29 von Heinrich Moser | Report spam
Hallo!

Ich habe im Rootverzeichnis einer IIS Website eine ASP.NET-Anwendung
laufen. Nun ist es aber so, dass diese Anwendung aus Sicht des Users
aus mehreren Anwendungen besteht. Ein konkretes Beispiel, damit man
sich darunter etwas vorstellen kann:

http://server/WebshopA/*.aspx
-> URLRewriting auf http://server/*.aspx?shop=WebshopA
-> zeigt den Webshop der Firma A

http://server/WebshopB/*.aspx
-> URLRewriting auf http://server/*.aspx?shop=WebshopB
-> zeigt den Webshop der Firma B

...usw.

Soweit ist das alles mit URLRewriting schön machbar (sprich: eine
einzige Codebasis, neue Webshops können ohne IIS-Konfiguration einfach
durch entsprechende Eintràge in der Datenbank angelegt werden).

Nun meine Frage: Da WebshopA, WebshopB usw. aus User-Sicht getrennte
Anwendungen sind, hàtte ich gerne auch getrennte Sessions dafür. Also
wenn der User in einem Browser-Tab WebshopA und im zweiten WebshopB
öffnet, würde es mir das (Programmierer-)Leben sehr vereinfachen, wenn
die Anwendung dann *nicht* in beiden Fàllen das gleiche Session-Objekt
verwendet.

Mir ist schon klar, dass ich das hàndisch implementieren könnte indem
ich statt dem Session-Objekt ein eigenes Objekt verwende, das dann die
Sachen nach Shopnamen getrennt in der echten Session ablegt, aber das
scheint mir kein sehr schöner Workaround zu sein. Gibt es da
vielleicht eine elegantere Lösung? Ich könnte mir z.B. vorstellen,
dass das Einschrànken des Session-Cookies auf bestimmte Pfade da
hilft, aber bevor ich mich da dran setze, wollte ich hier einmal
nachfragen -- vielleicht hatte ja schon einmal jemand so ein àhnliches
Problem.

LG,
Heinzi
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
04/03/2009 - 00:53 | Warnen spam
Hallo Heinrich,

"Heinrich Moser" schrieb:

Ich habe im Rootverzeichnis einer IIS Website eine ASP.NET-Anwendung
laufen. Nun ist es aber so, dass diese Anwendung aus Sicht des Users
aus mehreren Anwendungen besteht. Ein konkretes Beispiel, damit man
sich darunter etwas vorstellen kann:

http://server/WebshopA/*.aspx
-> URLRewriting auf http://server/*.aspx?shop=WebshopA
-> zeigt den Webshop der Firma A

http://server/WebshopB/*.aspx
-> URLRewriting auf http://server/*.aspx?shop=WebshopB
-> zeigt den Webshop der Firma B



da fallen mir zwei Möglichkeiten ein.

http://webshopa.server.tld/
http://webshopb.server.tld/
...

oder halt die Anwendung mehrfach einrichten, dann wàre sie genauso zu
erreichen wie das bei Dir der Fall ist, WebshopA, WebshopB, ... wàren
dann aber virtuelle Ordner bzw. eigene Anwendungen im IIS.

Letzteres würde ich persönlich nicht machen, ersteres schon (hab ich
auch mehrfach :). Den IIS musst Du hierfür nicht extra bemühen. Einfach
eine eigene IP für die Website verwenden, keinen Hostheader angeben,
dafür aber im DNS Server einen Wildcardeintrag (á la *.server.tld)
einrichten.

Die Unterscheidung kann deine Anwendung dann anhand des Hostnamens
treffen, die Session unterscheidet sich dabei automatisch, da der
Client das Sessioncookie nicht mitsendet, weil es für ihn ein anderer
Host ist (faktisch ja auch richtig).

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen