Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 27998|Απάντηση: 3

[Πηγή] Asp.Net έλεγχος ταυτότητας και εξουσιοδότηση στο MVC

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 16/3/2017 1:47:34 μ.μ. | | |

Το 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





Προηγούμενος:Μετά την αναβάθμιση VPS, η διαδικασία είναι περίπου 45 και η CPU τρέχει στο 100,
Επόμενος:Προειδοποίηση "Βρέθηκαν ανεπίλυτες διενέξεις μεταξύ διαφορετικών εκδόσεων της ίδιας εξαρτημένης διάταξης"
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 30/3/2017 9:40:22 π.μ. |
Δημοσιεύτηκε στις 28/12/2017 2:58:56 μ.μ. |
Θα ήταν καλύτερα να υπήρχαν αποδόσεις
Δημοσιεύτηκε στις 7/2/2023 3:44:56 μ.μ. |

Θα ήταν καλύτερα να υπήρχαν αποδόσεις
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com