Benutzer mit den meisten Antworten
Session erneuern - mit neuer SessionID

Frage
-
Hallo Zusammen,
ich habe über folgendes Problem schon reichlich gesucht - leider aber noch keine Lösung gefunden:
Ich habe eine ASP.NET Seite, von der ich eine 2te Seite in einem Frame öffne. Dies ist ein Konfigurator für unsere Produkte.
Problem: Dieser Konfigurator merkt sich die SessionID und öffnet beim 2ten Aufruf immer wieder die letzte Konfiguration, wenn es die gleiche Session ist. Leider habe ich auf diese Seite keinen Einfluss und kann das verhalten nicht ändern.
--> Folglich muss ich beim 2ten Aufruf der Seite darauf schauen, dass ich eine neue SessionID habe. Mit Session.abandon / clear. kommt ich aber nicht zum Ziel. Hier wird die Session zwar geleert, aber keine neue SID vergeben. Mit dem überschreiben des Session-Cookies lässt sich das ebenfalls nicht lösen:-( Aktuell einzigste Lösung: Browser schließend und neu öffnen = KEINE LÖSUNG.
Also nochmals in Kürze:
Wie kann ich meine Seite dazu bringen eine neue SID zu generieren/eine 2te Seite mit einer neuen SID aufzurufen.
Besten Dank schon mal für eure Hilfe! Auch jegliche Workarounds sind willkommen!
Viele Grüße
Benni
Antworten
-
Ich kann das beschriebene Verhalten nicht nachvollziehen. Ich habe testweise mal Folgendes getippt und erhalte damit bei jedem Aufruf eine neue SessionID:
protected void Page_Load(object sender, EventArgs e) { Session["Test"] = DateTime.Now; Response.Write("Session: " + Session.SessionID + ": " + Session["Test"]); Session.Abandon(); }
- Als Antwort markiert Benni_1983 Montag, 11. Januar 2010 09:28
Alle Antworten
-
Ich kann das beschriebene Verhalten nicht nachvollziehen. Ich habe testweise mal Folgendes getippt und erhalte damit bei jedem Aufruf eine neue SessionID:
protected void Page_Load(object sender, EventArgs e) { Session["Test"] = DateTime.Now; Response.Write("Session: " + Session.SessionID + ": " + Session["Test"]); Session.Abandon(); }
- Als Antwort markiert Benni_1983 Montag, 11. Januar 2010 09:28
-
Hi Thomas,
danke für die Antwort - in der Tat funktioniert es so wie du es beschrieben hast. In meiner Seite irgendwo im Seitenverlauf funktioniert es jedoch nicht´. Ich bin leider auch noch nicht dahintergekommen ab was es liegen könnte --> ich werde weiter suchen!
Vielen Dank für die Hilfe.
Gruß
Benni -
Hallo Benni,
--> Folglich muss ich beim 2ten Aufruf der Seite darauf schauen, dass ich eine neue SessionID habe. Mit Session.abandon / clear. kommt ich aber nicht zum Ziel. Hier wird die Session zwar geleert, aber keine neue SID vergeben. Mit dem überschreiben des Session-Cookies lässt sich das ebenfalls nicht lösen:-( Aktuell einzigste Lösung: Browser schließend und neu öffnen = KEINE LÖSUNG.
verwendest Du cookielose Sessions? Oder InProc? (also mit Sessioncookie)?
Wenn ersteres, reicht es eigentlich aus, einfach per Redirect umzuleiten. Wenn Du also folgenden Aufruf hast:
/<SessionId>/Abc.aspx
leitest Du bspw. auf:
/Abc.aspx
um, ASP.NET sorgt dann dafür, dass Du wieder eine Session bekommst, indem es wieder auf
/<AndereSessionId>/Abc.aspx
umleitet.
Gruß, 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