Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 31277|Risposta: 2

[Fonte] Autorizzazione basata sul ruolo

[Copiato link]
Pubblicato il 7-6-2020 alle 21:25:56 | | |
133 persone su 153 hanno trovato utile questo
Quando viene creata un'identità, essa può appartenere a uno o più ruoli, ad esempio Tracy può appartenere ai ruoli Amministratore e Utente mentre Scott può appartenere solo al ruolo utente. Il modo in cui questi ruoli vengono creati e gestiti dipende dal backup store del processo di autorizzazione. I ruoli sono esposti allo sviluppatore tramite la proprietà IsInRole nella classe ClaimsPrincipal.

La nuova identità può appartenere a uno o più ruoli, ad esempio, Tracy può appartenere ai ruoli di Amministratore e Utente, mentre Scott può appartenere solo al ruolo Utente. Il modo in cui questi ruoli vengono creati e gestiti dipende da come viene memorizzato il processo di autorizzazione. Il metodo IsInRole della classe ClaimsPrincipal fornisce agli sviluppatori come utilizzare il ruolo.

Aggiunta di controlli di ruolo Aggiunta di validazione del ruolo

I controlli di autorizzazione basati sui ruoli sono dichiarativi: lo sviluppatore li incorpora nel proprio codice, contro un controller o un'azione all'interno di un controller, specificando ruoli che l'utente corrente deve avere Sii membro di per accedere alla risorsa richiesta.

L'autenticazione basata sui ruoli è basata su rivendicazioni, che gli sviluppatori incorporano nel loro codice, assegnando ruoli a un controller o a metodi al suo interno, specificando che gli utenti in una richiesta devono soddisfare i relativi requisiti di appartenenza.

Ad esempio, il seguente codice limiterebbe l'accesso a qualsiasi azione sull'AdministrationController agli utenti che fanno parte del gruppo Administrator.

Ad esempio, il seguente codice limiterà qualsiasi metodo nell'AdministrationController a essere utilizzato solo facendo parte del gruppo Administrator.



Puoi specificare più ruoli come una lista separata da virgole;

Puoi aggiungere più ruoli assegnati a una lista a spartimento di virgole:



Questo controller sarebbe accessibile solo agli utenti che sono membri del ruolo HRManager o del ruolo Finanza.

Il controller sarà accessibile solo ai membri del ruolo HRManager o del ruolo Finanza.

Se applichi più attributi, allora un utente che accede deve essere membro di tutti i ruoli specificati; il seguente esempio richiede che un utente sia membro sia del ruolo PowerUser che di quello di ControlPanelUser.

Se usi più attributi, l'utente di accesso deve essere membro di tutti i ruoli; Il seguente esempio richiede che un utente sia membro sia del ruolo PowerUser che di quello di ControlPanelUser.



Puoi limitare ulteriormente l'accesso applicando attributi aggiuntivi di autorizzazione ai ruoli a livello di azione;

Puoi utilizzare attributi aggiuntivi di autorizzazione ai ruoli a livello di metodo per applicare restrizioni d'uso aggiuntive;




Nel precedente snippet di codice i membri del ruolo Amministratore o PowerUser possono accedere al controller e all'azione SetTime, ma solo i membri del ruolo Amministratore possono accedere al Azione ShutDown.

Nel precedente estratto di codice, i membri dei ruoli Amministratore o PowerUser possono utilizzare i metodi controller e SetTime, ma solo i membri del ruolo Amministratore possono utilizzare il metodo ShutDown.

Puoi anche bloccare un controller ma consentire l'accesso anonimo e non autenticato alle singole azioni.

Puoi anche bloccare un controller, ma permettere agli utenti anonimi di usare metodi separati senza autorizzazione.



Controlli di ruolo basati su policy Controlli di ruolo basati su policy

I requisiti di ruolo possono anche essere espressi utilizzando la nuova sintassi delle policy, dove uno sviluppatore registra una policy all'avvio come parte della configurazione del servizio di autorizzazione. Questo normalmente si attiva in ConfigureServices() nel tuo file Startup.cs.

I ruoli possono essere ottenuti anche utilizzando una nuova sintassi di policy, dove gli sviluppatori registrano una policy come parte della configurazione del servizio di autorizzazione all'avvio. Questo viene solitamente aggiunto a ConfigureServices() del file di Sartup.cs.



Le politiche vengono applicate utilizzando la proprietà Policy sull'attributo AuthorizeAttribute;

Implementa la policy utilizzando la proprietà Policy sopra la proprietà AuthorizeAttribute.



Se vuoi specificare più ruoli consentiti in un requisito, puoi specificarli come parametri nel metodo RequireRole;

Se vuoi specificare più ruoli in una richiesta, puoi specificarli come più parametri del metodo RequireRole:



il suo esempio autorizza gli utenti che appartengono ai ruoli Amministratore, PowerUser o Amministratore di Backup.

L'utente autorizzato in questo esempio apparterrà ai ruoli Amministratore, Utente Potente o Amministratore di Backup.

Trasferito da:Il login del link ipertestuale è visibile.




Precedente:Risolto il problema per cui HttpContext.User.IsInRole() restituisce sempre false
Prossimo:TS Parametro radix mancente (radix)
 Padrone di casa| Pubblicato il 7-6-2020 21:36:01 |


Se vuoi applicare solo l'ultima caratteristica, ovvero:

Puoi aggiungere quanto segue al filtro personalizzato:


AllowMultiple

Questo attributo indica se le nostre funzionalità personalizzate possono essere poste più volte prima della stessa entità del programma.
 Padrone di casa| Pubblicato il 10-6-2020 11:46:34 |
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com