Come usare le sessioni in un'applicazione ASP.NET MVC 4?
Sono nuovo di ASP.NET MVC. Ho usato PHP prima ed è stato facile creare una sessione e selezionare i record utente in base alle variabili di sessione correnti.
Ho cercato ovunque su Internet un semplice tutorial passo dopo passo che mi mostri come creare e usare le sessioni nella mia applicazione C# ASP.NET MVC 4. Voglio creare una sessione con variabili utente a cui posso accedere da qualsiasi punto dei miei controller ed essere in grado di utilizzare le variabili nelle mie query LINQ.
-Grazie in anticipo!
103
3
Prova
A causa della natura apolide del web, le sessioni sono anche un modo estremamente utile per persistere gli oggetti attraverso le richieste, serializzandoli e memorizzandoli in una sessione.
Un perfetto caso d'uso di questo potrebbe essere se avete bisogno di accedere a informazioni regolari attraverso la vostra applicazione, per risparmiare ulteriori chiamate al database su ogni richiesta, questi dati possono essere memorizzati in un oggetto e non serializzati su ogni richiesta, così:
Il nostro oggetto riutilizzabile e serializzabile:
Caso d'uso:
Una volta che questo oggetto è stato serializzato, possiamo usarlo in tutti i controllori senza doverlo creare o interrogare nuovamente il database per i dati contenuti al suo interno.
Iniettare l'oggetto di sessione usando Dependency Injection
In un mondo ideale si dovrebbe 'programmare su un'interfaccia, non su un'implementazione' e iniettare il proprio oggetto di sessione serializzabile nel controller usando il proprio contenitore di Inversione del Controllo di scelta, in questo modo (questo esempio usa StructureMap perché è quello con cui sono più familiare).
Dovresti quindi registrarlo nel tuo file
Global.asax.cs
.Per coloro che non hanno familiarità con l'iniezione di oggetti di sessione, è possibile trovare un post più approfondito sul blog sull'argomento qui.
Una parola di avvertimento:
Vale la pena notare che le sessioni dovrebbero essere mantenute al minimo, sessioni di grandi dimensioni possono iniziare a causare problemi di prestazioni.
Si raccomanda inoltre di non memorizzare dati sensibili in esse (password, ecc.).
Ecco come funziona lo stato di sessione in ASP.NET e ASP.NET MVC:
Panoramica sullo stato di sessione in ASP.NET
Fondamentalmente, si fa questo per memorizzare un valore nell'oggetto Session:
Per recuperare il valore: