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

Άποψη: 31277|Απάντηση: 2

[Πηγή] Εξουσιοδότηση βάσει ρόλων

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2020-6-7 21:25:56 | | |
133 από 153 άτομα το βρήκαν χρήσιμο
Όταν δημιουργείται μια ταυτότητα, μπορεί να ανήκει σε έναν ή περισσότερους ρόλους, για παράδειγμα η Tracy μπορεί να ανήκει στους ρόλους Διαχειριστή και Χρήστη, ενώ ο Scott μπορεί να ανήκει μόνο στον ρόλο χρήστη. Ο τρόπος δημιουργίας και διαχείρισης αυτών των ρόλων εξαρτάται από το χώρο αποθήκευσης υποστήριξης της διαδικασίας εξουσιοδότησης. Οι ρόλοι εκτίθενται στον προγραμματιστή μέσω της ιδιότητας IsInRole στην κλάση ClaimsPrincipal.

Η νέα ταυτότητα μπορεί να ανήκει σε έναν ή περισσότερους ρόλους, για παράδειγμα, η Tracy μπορεί να ανήκει στους ρόλους Διαχειριστή και Χρήστη και ενώ η Scott μπορεί να ανήκει μόνο στον ρόλο Χρήστη. Ο τρόπος δημιουργίας και διαχείρισης αυτών των ρόλων εξαρτάται από τον τρόπο αποθήκευσης της διαδικασίας εξουσιοδότησης. Η μέθοδος IsInRole της κλάσης ClaimsPrincipal παρέχει στους προγραμματιστές τον τρόπο χρήσης του ρόλου.

Προσθήκη ελέγχων ρόλων Προσθήκη επικύρωσης ρόλων

Οι έλεγχοι εξουσιοδότησης βάσει ρόλων είναι δηλωτικοί - ο προγραμματιστής τους ενσωματώνει στον κώδικά του, σε έναν ελεγκτή ή σε μια ενέργεια εντός ενός ελεγκτή, καθορίζοντας ρόλους που πρέπει να έχει ο τρέχων χρήστης Γίνετε μέλος του για να αποκτήσετε πρόσβαση στον πόρο που ζητήσατε.

Ο έλεγχος ταυτότητας βάσει ρόλων βασίζεται σε ισχυρισμούς, τον οποίο οι προγραμματιστές ενσωματώνουν στον κώδικά τους, εκχωρώντας ρόλους σε έναν ελεγκτή ή μεθόδους μέσα σε αυτόν, καθορίζοντας ότι οι χρήστες σε ένα αίτημα πρέπει να πληρούν τις αντίστοιχες απαιτήσεις μέλους.

Για παράδειγμα, ο ακόλουθος κώδικας θα περιόριζε την πρόσβαση σε οποιεσδήποτε ενέργειες στο AdministrationController σε χρήστες που είναι μέλη της ομάδας διαχειριστών.

Για παράδειγμα, ο ακόλουθος κώδικας θα περιορίσει οποιαδήποτε μέθοδο στο AdministrationController ώστε να χρησιμοποιείται μόνο με το να είστε μέλος της ομάδας διαχειριστών.



Μπορείτε να καθορίσετε πολλούς ρόλους ως λίστα διαχωρισμένη με κόμματα.

Μπορείτε να προσθέσετε πολλούς ρόλους που έχουν εκχωρηθεί σε μια λίστα διαχωρισμού κόμματος:



Αυτός ο ελεγκτής θα είναι προσβάσιμος μόνο από χρήστες που είναι μέλη του ρόλου HRManager ή του ρόλου Οικονομικών.

Ο υπεύθυνος επεξεργασίας θα είναι προσβάσιμος μόνο σε μέλη του ρόλου HRManager ή του ρόλου Οικονομικών.

Εάν εφαρμόσετε πολλά χαρακτηριστικά, τότε ένας χρήστης πρόσβασης πρέπει να είναι μέλος όλων των καθορισμένων ρόλων. Το παρακάτω δείγμα απαιτεί ότι ένας χρήστης πρέπει να είναι μέλος τόσο του ρόλου PowerUser όσο και του ρόλου ControlPanelUser.

Εάν χρησιμοποιείτε πολλά χαρακτηριστικά, ο χρήστης πρόσβασης πρέπει να είναι μέλος όλων των ρόλων. Το παρακάτω παράδειγμα απαιτεί από έναν χρήστη να είναι μέλος και των δύο ρόλων PowerUser και ControlPanelUser.



Μπορείτε να περιορίσετε περαιτέρω την πρόσβαση εφαρμόζοντας πρόσθετα χαρακτηριστικά εξουσιοδότησης ρόλου σε επίπεδο ενέργειας.

Μπορείτε να χρησιμοποιήσετε πρόσθετα χαρακτηριστικά εξουσιοδότησης ρόλου σε επίπεδο μεθόδου για να εφαρμόσετε πρόσθετους περιορισμούς χρήσης.




Στο προηγούμενο τμήμα κώδικα, τα μέλη του ρόλου διαχειριστή ή του ρόλου PowerUser μπορούν να έχουν πρόσβαση στον ελεγκτή και στην ενέργεια SetTime, αλλά μόνο τα μέλη του ρόλου διαχειριστή μπορούν να έχουν πρόσβαση στο Ενέργεια ShutDown.

Στο προηγούμενο τμήμα κώδικα, τα μέλη των ρόλων Administrator ή PowerUser μπορούν να χρησιμοποιήσουν τις μεθόδους ελεγκτή και SetTime, αλλά μόνο τα μέλη του ρόλου Administrator μπορούν να χρησιμοποιήσουν τη μέθοδο ShutDown.

Μπορείτε επίσης να κλειδώσετε ένα χειριστήριο, αλλά να επιτρέψετε την ανώνυμη, χωρίς έλεγχο ταυτότητας πρόσβαση σε μεμονωμένες ενέργειες.

Μπορείτε επίσης να αποκλείσετε έναν ελεγκτή, αλλά να επιτρέψετε σε ανώνυμους χρήστες να χρησιμοποιούν ξεχωριστές μεθόδους χωρίς εξουσιοδότηση.



Έλεγχοι ρόλων βάσει πολιτικής Έλεγχοι ρόλων βάσει πολιτικής

Οι απαιτήσεις ρόλων μπορούν επίσης να εκφραστούν χρησιμοποιώντας τη νέα σύνταξη πολιτικής, όπου ένας προγραμματιστής καταχωρεί μια πολιτική κατά την εκκίνηση ως μέρος της ρύθμισης παραμέτρων της υπηρεσίας εξουσιοδότησης. Αυτό συνήθως λαμβάνει μέρος στο ConfigureServices() στο αρχείο Startup.cs σας.

Οι ρόλοι μπορούν επίσης να επιτευχθούν χρησιμοποιώντας μια νέα σύνταξη πολιτικής, όπου οι προγραμματιστές καταχωρούν μια πολιτική ως μέρος της ρύθμισης παραμέτρων της υπηρεσίας εξουσιοδότησης κατά την εκκίνηση. Αυτό συνήθως προστίθεται στο ConfigureServices() του αρχείου Sartup.cs.



Οι πολιτικές εφαρμόζονται χρησιμοποιώντας την ιδιότητα Policy στο χαρακτηριστικό AuthorizeAttribute.

Εφαρμόστε την πολιτική χρησιμοποιώντας την ιδιότητα Policy πάνω από την ιδιότητα AuthorizeAttribute.



Εάν θέλετε να καθορίσετε πολλούς επιτρεπόμενους ρόλους σε μια απαίτηση, μπορείτε να τους καθορίσετε ως παραμέτρους στη μέθοδο RequireRole.

Εάν θέλετε να καθορίσετε πολλούς ρόλους σε μια αίτηση, μπορείτε να τους καθορίσετε ως πολλαπλές παραμέτρους της μεθόδου RequireRole:



Το παράδειγμά του εξουσιοδοτεί χρήστες που ανήκουν στους ρόλους Administrator, PowerUser ή BackupAdministrator.

Ο εξουσιοδοτημένος χρήστης σε αυτό το παράδειγμα θα ανήκει στο ρόλο Διαχειριστής, PowerUser ή BackupAdministrator.

Μεταφέρθηκε από:Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:Επιλύθηκε το πρόβλημα όπου το HttpContext.User.IsInRole() επιστρέφει πάντα false
Επόμενος:TS Ελλείπουσα παράμετρος ρίζας (radix)
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2020-6-7 21:36:01 |


Εάν θέλετε να εφαρμόσετε μόνο το τελευταίο χαρακτηριστικό, δηλαδή:

Μπορείτε να προσθέσετε τα ακόλουθα στο προσαρμοσμένο φίλτρο:


Να επιτρέπεταιΠολλαπλή

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

Mail To:help@itsvse.com