Το MVC συνοδεύεται από ένα ActionFilter Για να επιτύχουμε έλεγχο ταυτότητας σε Asp.NET WebForm, η Microsoft μας παρέχει τρεις τρόπους, ο πιο συχνά χρησιμοποιούμενος από τους οποίους είναι ο έλεγχος ταυτότητας φόρμας, ο οποίος πρέπει να διαμορφωθεί με τις αντίστοιχες πληροφορίες. Για παράδειγμα, οι ακόλουθες πληροφορίες διαμόρφωσης:
Σημαίνει ότι η σελίδα σύνδεσής μας είναι Login.aspx, η προεπιλεγμένη σελίδα μετά την επιτυχή σύνδεση είναι Default.aspx και οι πληροφορίες χρήστη μας υιοθετούν δύο μεθόδους: επαλήθευση και κρυπτογράφηση. Και το πιο σημαντικό είναι ότι πρέπει να γράψουμε τη μέθοδο εξουσιοδότησης (η παρακάτω εξουσιοδότηση πρέπει να είναι γραμμένη, διαφορετικά είναι άχρηστο να χρησιμοποιούμε μόνο τον έλεγχο ταυτότητας Forms και στη συνέχεια να ορίσουμε σχετικά χαρακτηριστικά), να αρνηθούμε όλους τους ανώνυμους χρήστες και μόνο οι συνδεδεμένοι χρήστες μπορούν να έχουν κανονική πρόσβαση. Μετά από αυτό, ρυθμίσαμε το κουμπί σύνδεσης για να γράψουμε το όνομα χρήστη στο cookie (δηλαδή, να εκτελέσουμε FormsAuthentication.SetAuthCookie(όνομα, false); Αυτό είναι. 0 Στο Asp.Net MVC μπορούμε επίσης να χρησιμοποιήσουμε τον έλεγχο ταυτότητας φορμών, αλλά αν το κάνετε στο WebForm, δεν θα λειτουργήσει. Για παράδειγμα, ρυθμίζετε τις παραμέτρους των πληροφοριών ως εξής:
Ρυθμίζετε μια σύνδεση στο Login.aspx σας για να ενεργοποιήσετε τη σύνδεση στο AccountController για να συνδεθείτε, όπου ο κωδικός σύνδεσης:
Αφού το κάνετε αυτό, θα διαπιστώσετε ότι η σύνδεσή σας δεν θα εκτελεστεί. Ποιός είναι ο λόγος? Γιατί δεν λειτουργεί η ίδια ρύθμιση στο MVC; Ο λόγος είναι ότι ο μηχανισμός είναι διαφορετικός, επειδή έχετε ρυθμίσει μια μέθοδο εξουσιοδότησης που καθιστά τη σύνδεση απρόσιτη. Πώς το κάνουμε λοιπόν; Στην πραγματικότητα, στο Asp.Net MVC έχουμε έναν καλύτερο τρόπο να τα κάνουμε όλα αυτά, δεν χρειαζόμαστε μέθοδο εξουσιοδότησης, πράγμα που σημαίνει ότι οι πληροφορίες διαμόρφωσής μας μοιάζουν με αυτό:
Δεν χρειάζεται να διευκρινιστεί ότι οι ανώνυμοι χρήστες δεν μπορούν να συνδεθούν κ.λπ. Φυσικά, θα διαπιστώσετε ότι δεν αρκεί μόνο αυτό, αλλά πρέπει να πούμε στο σύστημα ποια πρέπει να συνδεθούν για πρόσβαση. Μπορεί να σκέφτεστε, o()〈))o Ω, αυτό είναι πολύς κόπος. Δεν είναι έτσι, είναι πολύ απλό, απλά πρέπει να επισημάνουμε [Εξουσιοδότηση] στην ενέργεια που πρέπει να πιστοποιηθεί. Για παράδειγμα, έχω δύο σελίδες στον Αρχικό φάκελο, το Ευρετήριο και την Αρχική σελίδα, και θέλω να γίνει έλεγχος ταυτότητας του Ευρετηρίου για πρόσβαση, αλλά η Αρχική σελίδα δεν έχει, επομένως χρειάζεται μόνο να δώσω στο Ευρετήριο την ετικέτα Ενέργεια [Εξουσιοδότηση], δηλαδή:
Αυτό επιτρέπει την πρόσβαση στο Index μετά τη σύνδεση, ενώ το Home δεν χρειάζεται να συνδεθεί. Εάν πρέπει να εξουσιοδοτήσετε ρόλους, τότε μπορείτε να καθορίσετε τον ρόλο κατά την επισήμανση Εξουσιοδότηση (π.χ. [Authorize(Role=Administrators)]), αλλά πρέπει να χρησιμοποιήσετε τον μηχανισμό μέλους που παρέχεται από τη Microsoft, επειδή ο ρόλος σας δεν μπορεί να υπάρχει για τίποτα, αλλά υπάρχει στην αντίστοιχη βάση δεδομένων, την οποία ανέφερα σε άλλο ιστολόγιο. Προσαρμόστε το ActionFilter Μερικές φορές μπορεί να μην μπορείτε να ανταποκριθείτε σε αυτό το είδος ελέγχου ταυτότητας ή αν πιστεύετε ότι δεν είστε αρκετά ευέλικτοι, τότε δεν πειράζει, Asp.Net MVC σάς επιτρέπει να προσαρμόσετε το ActionFilter σας. Για παράδειγμα, τώρα προσαρμόζω τον έλεγχο ταυτότητας:
Εάν απαιτείται διαχείριση χρηστών, θα ορίσω τα φίλτρα που σχετίζονται με τους ρόλους:
Μάλιστα, θα διαπιστώσετε ότι τα δύο παραπάνω Attributes έχουν όντως λυθεί από το ενσωματωμένο Authorized του MVC και εδώ σας λέμε κυρίως ότι μπορείτε να το επεκτείνετε αν χρειαστεί. Λοιπόν, αυτά για σήμερα! Λήψη πηγαίου κώδικα: FormFormsAuthenticationMvc
|