Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Sessions: unterschieliches verhalten von IE und FF
kaloon
myCSharp.de - Member



Dabei seit:
Beiträge: 124
Herkunft: OÖ

Themenstarter:

Sessions: unterschieliches verhalten von IE und FF

beantworten | zitieren | melden

Hallo liebe Community,

als Einstieg in das Thema Sessions habe ich folgenden Threadgefunden und das Beispiel von norman_timo getestet:
Zitat
Zum Ausprobieren kannst Du mal folgendes Szenario aufbauen:

- Ein ASP.NET Projekt erstellen (mit VisualStudio).
- Dort ein Button und ein Label einfügen.
- Im Button-Event den Code Session.Add("ClientHatGeklickt", "Jawollja"); hinterlegen
- Das Label zeigt nun folgendes an (z.B. in Page_Load implementiert):
C#-Code:
if (Session["ClientHatGeklickt"] != null)
{
Label1.Text = "Client hat geklickt!";
}
else
{
Label1.Text = "Bis jetzt noch nix!";
}



Dann starte dein ASP.NET Projekt einmal und klicke nix. Daraufhin startest Du Dein Projekt ein 2. Mal mit einer anderen Browser-Instanz. Auf einem Projekt klickst Du nun auf den Button (beim anderen NICHT!).

wenn ich das Projekt kompiliere und am IIS ein virtuelles Verzeichnis mit dem Projekt einrichte und das ganze wie beschrieben mit 2 IE(version 6, xp sp2) teste, funktioniert es wunderbar, auch die Kombination IE und FF (v 2.0.0.4) funktioniert. wenn ich die Seite aber in zwei verschiedenen FF Fenstern öffne, in einem den button betätige und aschließend bei beiden Fenstern die Seite aktualisiere, steht bei beiden "Client hat geklickt!".

[Edit]
ich habe jetzt auch opera 9.21 ausprobiert: selbes Verhalten wie FF
außerdem ist mir folgendes aufgefallen: sobald der IE geschlossen und die Seite nach einem Neustart geladen wird, steht wieder "Bis jetzt noch nix". wenn ich nach dem Klicken des Buttons in FF oder Opera den Browser schließe, neu starte und die Seite lade, steht trotzdem "Client hat geclicket" (solange das Cookie nicht abgelaufen ist)
[/Edit]

Dass würde doch bedeuten, das beim IE mehrere Browser-Instanzen als mehrere "Clients" gesehen werden, womit auch mehrere Sessions erzeugt werden, wohingegen FF für einen Rechner immer nur eine Session erzeugt?

Wieso? kann jemand dieses Verhalten erklären oder zumindest reproduzieren?

lg
martin
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von kaloon am .
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo Martin

Das ist wirklich höchst interessant, müsste ich auch einmal testen.
Noch als Anmerkung, wenn du per Click eine Session setzt und je nach gesetzter Session im Page_Load z.B. etwas in ein Label schreibst, passiert dies erst beim zweiten Aufruf der Seite.
Beziehungsweise nachdem du ein zweites Mal auf den Button geklickt, oder ein Refresh gemacht hast.

Der Grund? Der Lebenszyklus innerhalb einer ASP.NET Seite:

Page_Load
Button_Click
Page_PreRender

Du musst in diesem Fall das Label im PreRender Eventhandler setzen, dann klappts auch beim ersten Mal.


Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
kaloon
myCSharp.de - Member



Dabei seit:
Beiträge: 124
Herkunft: OÖ

Themenstarter:

beantworten | zitieren | melden

Hallo Peter,

zu deiner Anmerkung: über den Lebenszyklus einer ASP.NET Seite bin ich schon beim Thema Sessions, gestoßen, und ich weiß, dass der Quellcode besser sein könnte
Zitat
Das ist wirklich höchst interessant, müsste ich auch einmal testen.

Ja, wäre interessant ob du es reproduzieren kannst

ich habe mir die einzelnen Session IDs angeschaut, demnach erzeugen zwei IE Instanzen auch zwei unterschiedliche Instanzen. zwei FF oder opera Instanzen erhalten die gleiche Session ID. Wieso aber ist das so?
private Nachricht | Beiträge des Benutzers
Zen
myCSharp.de - Member



Dabei seit:
Beiträge: 43

beantworten | zitieren | melden

Ich habe zwar keine Ahnung, aber ich stelle mir die Frage, ob es bei zwei FF oder zwei Opera um 2x geöffnete FF-Fenster oder ob es 2x geöffnete Tabs sind. Vielleicht liegt darin der Unterschied.
private Nachricht | Beiträge des Benutzers
Ifoko
myCSharp.de - Member



Dabei seit:
Beiträge: 256
Herkunft: Wien

beantworten | zitieren | melden

Die Browser erstellen Session Cookies und schicken das an den Server.

Kann schon sein das 2 FF genau das selbe Sessioncookie erzeugen, wäre aber eine arge Sache.
private Nachricht | Beiträge des Benutzers
kaloon
myCSharp.de - Member



Dabei seit:
Beiträge: 124
Herkunft: OÖ

Themenstarter:

beantworten | zitieren | melden

guten morgen

zen schrieb:
Zitat
Ich habe zwar keine Ahnung, aber ich stelle mir die Frage, ob es bei zwei FF oder zwei Opera um 2x geöffnete FF-Fenster oder ob es 2x geöffnete Tabs sind. Vielleicht liegt darin der Unterschied.

es waren 2x geöffnete FF fenster, allerdings ist das verhalten bei 2x tabs das selbe

ifoko schrieb
Zitat
Kann schon sein das 2 FF genau das selbe Sessioncookie erzeugen, wäre aber eine arge Sache.
ich habe mir einfach die session ID ausgeben lassen, die waren bei 2x IE fenstern unterschiedlich (wie erwartet), bei 2x FF fenstern jedoch gleich

konnte jemand das beschriebene verhalten reproduzieren?

lg
martin
private Nachricht | Beiträge des Benutzers
M@TUK
myCSharp.de - Member



Dabei seit:
Beiträge: 402

beantworten | zitieren | melden

Hi Kaloon!


Zuerst wollte ich Dir hier noch groß widersprechen, nach einem Test
der mir 8o die Augen geöffnet hat, muß ich aber leider zugeben,
dass bei mir der "Fehler" ebenso auftritt.

Bei mir handelt es sich sogar um eine PHP-Webapplikation.
Beide FF-Instanzen melden "eingeloggt" obwohl nur bei einer ein Login
durchgeführt wurde.

Es scheint als hätte der FF nur ein Session-Cookie für die Domain/Pfad und verwendet das für alle Instanzen.

lg
M@TUK
private Nachricht | Beiträge des Benutzers
kaloon
myCSharp.de - Member



Dabei seit:
Beiträge: 124
Herkunft: OÖ

Themenstarter:

beantworten | zitieren | melden

hi M@ATUK,
Zitat
Zuerst wollte ich Dir hier noch groß widersprechen, nach einem Test
der mir geschockt die Augen geöffnet hat, muß ich aber leider zugeben,
dass bei mir der "Fehler" ebenso auftritt.

danke für's testen.
private Nachricht | Beiträge des Benutzers
Zen
myCSharp.de - Member



Dabei seit:
Beiträge: 43

beantworten | zitieren | melden

Mir ist noch was eingefallen.

Wenn man bei PHP eine Session erstellt, dann wird diese ja einmal in eine Datei auf dem Server gespeichert und dann als Cookie. Und der wird ja vergleicht, damit nicht bei jedem Aufruf eine neue Session erstellt werden muss.

Zusätzlich, ist es bei vBulletin oder wBB so, dass die ja sozusagen ein eigenes SessionSystem benutzen und nicht das PHPinterne. Die erstellen die Session in Verbindung mit User-Agent, Zeit und einer Zufallszahl und vllt noch mehr, weiß jetzt nicht mehr.

Vielleicht sind das noch ein paar Anregungen bei dem Problem


Gruß
Zen
private Nachricht | Beiträge des Benutzers