Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 31277|Răspunde: 2

[Sursă] Autorizare bazată pe roluri

[Copiază linkul]
Postat la 2020-6-7 21:25:56 | | |
133 din 153 de persoane au găsit acest lucru util
Când o identitate este creată, aceasta poate aparține unuia sau mai multor roluri, de exemplu Tracy poate aparține rolurilor de Administrator și Utilizator, în timp ce Scott poate aparține doar rolului de utilizator. Modul în care aceste roluri sunt create și gestionate depinde de stocul de suport al procesului de autorizare. Rolurile sunt expuse dezvoltatorului prin proprietatea IsInRole din clasa ClaimsPrincipal.

Noua identitate poate aparține unuia sau mai multor roluri, de exemplu, Tracy poate aparține rolurilor de Administrator și Utilizator, iar Scott poate aparține doar rolului Utilizator. Modul în care aceste roluri sunt create și gestionate depinde de modul în care este stocat procesul de autorizare. Metoda IsInRole din clasa ClaimsPrincipal oferă dezvoltatorilor cum să folosească acest rol.

Adăugarea verificărilor de rol Adăugarea validării rolurilor

Verificările de autorizare bazate pe roluri sunt declarative – dezvoltatorul le încorporează în codul său, împotriva unui controler sau a unei acțiuni din interiorul unui controler, specificând roluri pe care utilizatorul curent trebuie să le aibă Fii membru pentru a accesa resursa solicitată.

Autentificarea bazată pe roluri este bazată pe revendicări, pe care dezvoltatorii o integrează în codul lor, atribuind roluri unui controler sau metodelor din interiorul acestuia, specificând că utilizatorii unei cereri trebuie să îndeplinească cerințele corespunzătoare de membru.

De exemplu, următorul cod ar limita accesul la orice acțiuni pe AdministrationController pentru utilizatorii care fac parte din grupul Administratori.

De exemplu, codul următor va restricționa orice metodă din AdministrationController să fie folosită doar dacă ești membru al grupului Administrator.



Poți specifica mai multe roluri ca o listă separată de virgule;

Poți adăuga mai multe roluri atribuite într-o listă împărțită între virgule:



Acest controler ar fi accesibil doar utilizatorilor care sunt membri ai rolului HRManager sau al rolului Financiar.

Controlorul va fi accesibil doar membrilor din rolul HRManager sau din cel de Finanțe.

Dacă aplici mai multe atribute, atunci un utilizator care accesează trebuie să fie membru al tuturor rolurilor specificate; următorul exemplu cere ca un utilizator să fie membru atât al rolului PowerUser, cât și al rolului ControlPanelUser.

Dacă folosești mai multe atribute, utilizatorul de acces trebuie să fie membru al tuturor rolurilor; Următorul exemplu cere ca un utilizator să fie membru atât al rolurilor PowerUser, cât și al ControlPanelUser.



Poți limita suplimentar accesul aplicând atribute suplimentare de autorizare a rolului la nivelul acțiunii;

Poți folosi atribute suplimentare de autorizare a rolului la nivel de metodă pentru a aplica restricții suplimentare de utilizare;




În fragmentul de cod anterior, membrii rolului Administrator sau PowerUser pot accesa controlerul și acțiunea SetTime, dar doar membrii rolului Administrator pot accesa Acțiune ShutDown.

În fragmentul de cod anterior, membrii rolurilor Administrator sau PowerUser pot folosi metodele controler și SetTime, dar doar membrii rolului de Administrator pot folosi metoda ShutDown.

Poți de asemenea să blochezi un controller, dar să permiți accesul anonim și neautentificat la acțiuni individuale.

De asemenea, poți bloca un controller, dar poți permite utilizatorilor anonimi să folosească metode separate fără autorizare.



Verificări de rol bazate pe politici Verificări de rol bazate pe politici

Cerințele rolului pot fi exprimate și folosind noua sintaxă a politicii, unde un dezvoltator înregistrează o politică la pornire ca parte a configurației serviciului de autorizare. De obicei, acesta se formează în ConfigureServices() în fișierul tău Startup.cs.

Rolurile pot fi atinse și prin utilizarea unei noi sintaxe de politici, unde dezvoltatorii înregistrează o politică ca parte a configurației serviciului de autorizare la pornire. Aceasta este de obicei adăugată Sartup.cs în fișierul ConfigureServices().



Politicile sunt aplicate folosind proprietatea Politică de pe atributul AuthorizeAttribute;

Implementează politica folosind proprietatea Policy deasupra proprietății AuthorizeAttribute.



Dacă vrei să specifici mai multe roluri permise într-o cerință, atunci le poți specifica ca parametri pentru metoda RequireRole;

Dacă vrei să specifici mai multe roluri într-o cerere, le poți specifica ca mai mulți parametri ai metodei RequireRole:



exemplul său autorizează utilizatorii care aparțin rolurilor Administrator, PowerUser sau BackupAdministrator.

Utilizatorul autorizat din acest exemplu va aparține rolului Administrator, PowerUser sau BackupAdministrator.

Transferat din:Autentificarea cu hyperlink este vizibilă.




Precedent:Am rezolvat problema în care HttpContext.User.IsInRole() returnează întotdeauna fals
Următor:TS Parametru radix lipsă (radix)
 Proprietarul| Postat la 2020-6-7 21:36:01 |


Dacă vrei să aplici doar ultima caracteristică, adică:

Poți adăuga următoarele în filtrul personalizat:


AllowMultiple

Acest atribut marchează dacă caracteristicile noastre personalizate pot fi plasate de mai multe ori înaintea aceleiași entități de program.
 Proprietarul| Postat la 2020-6-10 11:46:34 |
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com