133 van de 153 mensen vonden dit nuttig Wanneer een identiteit wordt aangemaakt, kan deze tot één of meer rollen behoren, bijvoorbeeld Tracy kan tot de rollen Administrator en Gebruiker behoren, terwijl Scott alleen tot de gebruikersrol behoort. Hoe deze rollen worden aangemaakt en beheerd, hangt af van de backing store van het autorisatieproces. Rollen worden aan de ontwikkelaar blootgesteld via de IsInRole-eigenschap op de ClaimsPrincipal-klasse.
De nieuwe identiteit kan tot één of meer rollen behoren, bijvoorbeeld Tracy kan tot de rollen Administrator en Gebruiker behoren, en terwijl Scott alleen tot de rol Gebruiker kan behoren. Hoe deze rollen worden aangemaakt en beheerd, hangt af van hoe het autorisatieproces wordt opgeslagen. De IsInRole-methode van de ClaimsPrincipal-klasse geeft ontwikkelaars inzicht in hoe ze de rol kunnen gebruiken.
Rol toevoegen controles Rol validatie toevoegen
Rolgebaseerde autorisatiecontroles zijn declaratief - de ontwikkelaar verwerkt ze in zijn code, tegen een controller of een actie binnen een controller, waarbij rollen worden gespecificeerd die de huidige gebruiker moet aangeven Lid zijn van om toegang te krijgen tot de gevraagde bron.
Rolgebaseerde authenticatie is claim-based, waarbij ontwikkelaars in hun code inbouwen en rollen toewijzen aan een controller of methoden daarin, waarbij wordt gespecificeerd dat gebruikers in een verzoek aan de bijbehorende lidmaatschapsvereisten moeten voldoen.
Bijvoorbeeld, de volgende code zou de toegang tot alle acties op de AdministrationController beperken tot gebruikers die lid zijn van de Administrator-groep.
Bijvoorbeeld, de volgende code beperkt elke methode in de AdministrationController tot alleen gebruik door lid te zijn van de Administrator-groep.
Je kunt meerdere rollen specificeren als een komma-gescheiden lijst;
Je kunt meerdere toegewezen rollen toevoegen aan een komma-split-lijst:
Deze controller is alleen toegankelijk voor gebruikers die lid zijn van de HRManager-rol of de Finance-rol.
De controller is alleen toegankelijk voor leden van de HRManager-rol of de Finance-rol.
Als je meerdere attributen toepast, moet een gebruiker die toegang heeft tot alle gespecificeerde rollen; het volgende voorbeeld vereist dat een gebruiker lid moet zijn van zowel de PowerUser- als de ControlPanelUser-rol.
Als je meerdere attributen gebruikt, moet de toegangsgebruiker lid zijn van alle rollen; Het volgende voorbeeld vereist dat een gebruiker lid is van zowel de PowerUser- als de ControlPanelUser-rollen.
Je kunt de toegang verder beperken door extra rolautorisatieattributen toe te passen op actieniveau;
Je kunt extra rolautorisatieattributen op methodeniveau gebruiken om extra gebruiksbeperkingen toe te passen;
In het vorige codefragment kunnen leden van de Administrator-rol of de PowerUser-rol toegang krijgen tot de controller en de SetTime-actie, maar alleen leden van de Administrator-rol kunnen de Afsluitactie.
In het vorige codefragment kunnen leden van de Administrator- of PowerUser-rollen de controller- en SetTime-methoden gebruiken, maar alleen leden van de Administrator-rol kunnen de ShutDown-methode gebruiken.
Je kunt ook een controller vergrendelen, maar anonieme, niet-geauthenticeerde toegang geven tot individuele acties.
Je kunt ook een controller blokkeren, maar anonieme gebruikers toestaan om zonder toestemming aparte methoden te gebruiken.
Beleidsgebaseerde rolcontroles Beleidsgebaseerde rolcontroles
Rolvereisten kunnen ook worden uitgedrukt met de nieuwe beleidssyntaxis, waarbij een ontwikkelaar een beleid registreert bij het opstarten als onderdeel van de configuratie van de autorisatieservice. Dit vindt normaal gesproken plaats in ConfigureServices() in je Startup.cs bestand.
Rollen kunnen ook worden bereikt door een nieuwe beleidssyntaxis te gebruiken, waarbij ontwikkelaars een beleid registreren als onderdeel van de configuratie van de autorisatieservice bij het opstarten. Dit wordt meestal toegevoegd aan de ConfigureServices() van het Sartup.cs-bestand.
Beleidsregels worden toegepast met de Policy-eigenschap op het AuthorizeAttribut-attribuut;
Implementeer het beleid door de eigenschap Policy bovenop de eigenschap AuthorizeAttribute te gebruiken.
Als je meerdere toegestane rollen in een vereiste wilt specificeren, kun je ze als parameters voor de RequireRole-methode opgeven;
Als je meerdere rollen in een verzoek wilt specificeren, kun je ze als meerdere parameters van de RequireRole-methode opgeven:
zijn voorbeeld machtigt gebruikers die tot de rollen Administrator, PowerUser of BackupAdministrator behoren.
De geautoriseerde gebruiker in dit voorbeeld behoort tot de rol Administrator, PowerUser of BackupAdministrator.
Overgedragen van:De hyperlink-login is zichtbaar. |