2009-03-10 16 views
1

Wir haben eine Flex-Anwendung, die mit ASP.NET funktioniert. (durch weborb). Und wir verwenden mehrere Daten auf der .NET-Seite, um Daten zu laden, zB: UserId, ChannelId, ... Zur Zeit wird nur userid im Namen der HttpContext.Current.Identity gespeichert. Also muss die Flex-Seite nicht ständig die Benutzer-ID drücken, aber jetzt wollen wir auch den "Push" der Kanal-ID deaktivieren.Wie kann ich Sitzungsdaten in ASP.NET speichern?

Ich fragte mich, wo wir diese Daten "speichern" sollten. Kann eine Sitzung ausreichend gespeichert werden oder müssen wir einen Cookie verwenden? oder gibt es andere Methoden für dieses "Problem".

Antwort

7

Ich würde empfehlen, Session zu verwenden, da die Werte dann auf dem Server gespeichert werden (Cookies werden auf dem Client gespeichert). Verwenden Sie auch eine statische Klasse und wickeln Sie die Sitzung dort um.

Statt

Session["channelid"] = ChannelId 

Verwendung

SessionManager.ChannelId = ChannelId 

und Sie können SessionManager als statische Klasse mit statischen Eigenschaften, die die Sitzung verwenden erklären. Ich glaube, dass dies eine allgemeine Microsoft-Praxis ist.

Cheers

1

Session klingt wie eine gute Wahl dafür. Während es viel Abneigung dagegen gibt, es sei denn, Sie müssen wirklich auf eine sehr große Anzahl von gleichzeitigen Benutzern skalieren, gibt es keinen Grund, es für solch eine kleine Menge von Daten pro Sitzung zu vermeiden.

Cookies ist eine Option, aber es bedeutet, dass die Daten clientseitig gehalten werden, was nicht wünschenswert ist, und alle Anfragen an den Server auffüllen.

0

Wenn es nur ein Fall von Speichern von userId und channelId oder ähnliche Ganzzahlwerte ist, bevorzuge ich Sitzung, aber wenn Sie mehr Daten als diese haben, und Sie ziemlich viele gleichzeitige Sitzungen möglich sind, dann Sitzung möglicherweise ein bisschen schwer.

Verwandte Themen