Wie zum speichern von session-Daten .NET MVC 5
Kann ich die HttpContext.ApplicationInstance.Context
- Klasse zum speichern von session-Daten mit den Session
Funktion?
Oder gibt es einen besseren Weg, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Normalerweise die session ist als Eigenschaft in Ihren controller-Aktionen:
Da die
Session
- Eigenschaft ist vom TypHttpSessionStateBase
es leichter werden verspottet in einem unit-test. Bitte verwenden Sie niemals die statischeHttpContext.Current.Session
wie sehen Sie möglicherweise vorgeschlagen, an anderer Stelle.Wenn Sie sich nicht innerhalb einer controller-action können Sie auf die Sitzung, wenn Sie eine Instanz von
HttpContextBase
(die fast in jedem Teil der MVC pipeline) mit seiner Session-Eigenschaft.Session
- Eigenschaft anstelle derHttpContext.Current.Session
? Ich habe eine schnelle Suche auf den Unterschied, und ich habe dieserJa, Sie anwenden können, Daten in eine Sitzung durch die Nutzung der
HttpContext
. Sie sollten vorsichtig mit solchen Implementierungen allerdings Model-View-Controller ist in der Natur stateless. Die Sitzung wird jedoch diktieren irgendeine form von Staat.Müssen Sie berücksichtigen, sonst könnten Sie möglicherweise die Einführung einer großen Menge von verwaisten session-Variablen, wenn Sie nicht berücksichtigt werden. Das Essen konnte Speicher in Ihrer Umgebung schnell abhängig von Ihrer Anwendung.
Wenn die Anwendung ist klein, können Sie leicht tun Sie es mit der folgenden, die in Ihrem Controller: