Laden...

ASP.net MVC Sessions

Erstellt von freak131 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.750 Views
F
freak131 Themenstarter:in
101 Beiträge seit 2008
vor 13 Jahren
ASP.net MVC Sessions

Hallo,

ich nutze das ASP.net MVC und komme aus der PHP Ecke, ASP.net ist also Neuland für mich.

wenn ich im ASP.net MVC auf das Session Objekt zugreife, wird bei jedem Request eine neue SessionId generiert.

Muss ich die SessionId selber via Cookie speichern?!

 // Prüfen ob die Session als URL Parameter beigegeben wurde
            if (!string.IsNullOrEmpty(Request.QueryString["session"]))
            {
              // ...
                    Session["fb_session"] = s.session_key;
              // ...
            }

            // Prüfen ob die Session in einer Session versteckt ist
            if (Session["fb_session"] != null)
            {
                return Session["fb_session"] as string;
            }

Muss ich das Session Objekt irgendwie initialisieren?

Ich habe zusätzlich in der Webconfig dies eingetragen

<sessionState mode="InProc" cookieless="false" timeout="20"/>

Ein Cookie wird auch nicht gesetzt [...]

F
freak131 Themenstarter:in
101 Beiträge seit 2008
vor 13 Jahren
HttpSessionStateBase Session = HttpContext.Session;

[...]

F
freak131 Themenstarter:in
101 Beiträge seit 2008
vor 13 Jahren

this.ControllerContext.HttpContext.Session

[...]

2.082 Beiträge seit 2005
vor 13 Jahren

Hallo freak131,

mit cookieless auf false bekommst du Probleme bei Browsern, die keine cookies zulassen/unterstützen. Stelle das lieber auf AutoDetect.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

eigentlich nimmt Dir ASP.NET die ganze Arbeit mit der Sitzung ab. Du brauchst nicht zu prüfen, ob eine Session-ID im URL steckt. Die Erstellung sowie die Auswertung der Sitzungsdaten im Request passiert automatisch, entweder über den URL oder über Cookies.
Das Session-Objekt ist dann bereits das richtige für den Client, und Du kannst dort direkt die benötigten Sitzungswerte abspeichern.

Mit

Session.IsNewSession

kannst Du überprüfen, ob es sich um eine neue Sitzung handelt.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca