Περισσότερα
Πώς να χρησιμοποιήσετε συνεδρίες σε μια εφαρμογή ASP.NET MVC 4;
Είμαι νέος στο ASP.NET MVC. Έχω χρησιμοποιήσει PHP πριν και ήταν εύκολο να δημιουργήσω μια συνεδρία και να επιλέξω εγγραφές χρηστών με βάση τις τρέχουσες μεταβλητές συνεδρίας.
Έψαξα παντού στο Διαδίκτυο για ένα απλό βήμα προς βήμα σεμινάριο που να μπορεί να μου δείξει πώς να δημιουργώ και να χρησιμοποιώ συνεδρίες στην εφαρμογή μου C# ASP.NET MVC 4. Θέλω να δημιουργήσω μια συνεδρία με μεταβλητές χρήστη στις οποίες μπορώ να έχω πρόσβαση από οπουδήποτε στους ελεγκτές μου και να μπορώ να χρησιμοποιώ τις μεταβλητές στα ερωτήματα LINQ.
-Ευχαριστώ εκ των προτέρων!
103
3
Δοκιμάστε το
Λόγω της μη καταστατικής φύσης του διαδικτύου, οι σύνοδοι είναι επίσης ένας εξαιρετικά χρήσιμος τρόπος για τη διατήρηση αντικειμένων σε διάφορες αιτήσεις, με τη σειριοποίησή τους και την αποθήκευσή τους σε μια σύνοδο.
Μια τέλεια περίπτωση χρήσης αυτού θα μπορούσε να είναι αν χρειάζεται να έχετε πρόσβαση σε τακτικές πληροφορίες σε όλη την εφαρμογή σας, για να γλιτώσετε πρόσθετες κλήσεις βάσης δεδομένων σε κάθε αίτηση, τα δεδομένα αυτά μπορούν να αποθηκευτούν σε ένα αντικείμενο και να μη σειροποιηθούν σε κάθε αίτηση, ως εξής:
Το επαναχρησιμοποιήσιμο, σειριοποιήσιμο αντικείμενό μας:
Περίπτωση χρήσης:
Μόλις αυτό το αντικείμενο σειριοποιηθεί, μπορούμε να το χρησιμοποιήσουμε σε όλους τους ελεγκτές χωρίς να χρειάζεται να το δημιουργήσουμε ή να κάνουμε ξανά ερώτημα στη βάση δεδομένων για τα δεδομένα που περιέχονται σε αυτό.
Ενσωμάτωση του αντικειμένου της συνεδρίας σας χρησιμοποιώντας Dependency Injection
Σε έναν ιδανικό κόσμο θα 'προγραμματίζετε σε μια διασύνδεση, όχι υλοποίηση' και θα εγχέετε το σειριοποιήσιμο αντικείμενο συνόδου σας στον ελεγκτή σας χρησιμοποιώντας το δοχείο Inversion of Control της επιλογής σας, ως εξής (αυτό το παράδειγμα χρησιμοποιεί το StructureMap καθώς είναι αυτό με το οποίο είμαι πιο εξοικειωμένος).
Στη συνέχεια, θα το καταχωρήσετε αυτό στο αρχείο σας
Global.asax.cs
.Για όσους δεν είναι εξοικειωμένοι με την εισαγωγή αντικειμένων συνόδου, μπορείτε να βρείτε μια πιο λεπτομερή δημοσίευση στο blog σχετικά με το θέμα εδώ.
Μια προειδοποίηση:
Αξίζει να σημειωθεί ότι οι σύνοδοι θα πρέπει να περιορίζονται στο ελάχιστο, οι μεγάλες σύνοδοι μπορούν να αρχίσουν να προκαλούν προβλήματα απόδοσης.
Συνιστάται επίσης να μην αποθηκεύετε σε αυτές ευαίσθητα δεδομένα (κωδικούς πρόσβασης κ.λπ.).
Έτσι λειτουργεί η κατάσταση συνεδρίας στο ASP.NET και στο ASP.NET MVC:
ASP.NET Session State Overview
Βασικά, το κάνετε αυτό για να αποθηκεύσετε μια τιμή στο αντικείμενο Session:
Για να ανακτήσετε την τιμή: