|
|
Zveřejněno 7. 6. 2020 21:25:56
|
|
|

133 z 153 lidí to považovalo za užitečné Když je identita vytvořena, může patřit jedné nebo více rolím, například Tracy může patřit rolím Administrátora a Uživatele, zatímco Scott může patřit pouze do uživatelské role. Jak jsou tyto role vytvářeny a spravovány, závisí na záložní stránce autorizačního procesu. Role jsou vývojáři zpřístupněny prostřednictvím vlastnosti IsInRole ve třídě ClaimsPrincipal.
Nová identita může patřit jedné nebo více rolím, například Tracy může patřit rolím Administrátora a Uživatele, zatímco Scott může patřit pouze do role Uživatele. Jak jsou tyto role vytvářeny a spravovány, závisí na tom, jak je uložen autorizační proces. Metoda IsInRole třídy ClaimsPrincipal poskytuje vývojářům návod, jak tuto roli používat.
Přidání kontrol rolí Přidání validace rolí
Autorizační kontroly založené na rolích jsou deklarativní – vývojář je vkládá do svého kódu, proti řadiči nebo akci v řadiči, přičemž určuje role, které musí aktuální uživatel Buďte členem pro přístup k požadovanému zdroji.
Autentizace založená na rolích je založená na nárokech, kterou vývojáři vkládají do svého kódu, přiřazují role řadiči nebo metodám v něm a specifikují, že uživatelé v požadavku musí splnit odpovídající požadavky na členství.
Například následující kód by omezil přístup k jakýmkoli akcím na Administrátoru pouze na uživatele, kteří jsou členy skupiny Administrátorů.
Například následující kód omezí jakoukoli metodu v AdministrationControlleru, aby byla používána pouze členem skupiny Administrátorů.
Můžete specifikovat více rolí jako seznam oddělený čárkou;
Můžete přidat více přiřazených rolí do seznamu rozděleného čárkou:
Tento kontrolér by byl přístupný pouze uživatelům, kteří jsou členy role HRManager nebo finančního oddělení.
Kontrolor bude přístupný pouze členům role HRManager nebo pozice finančního.
Pokud aplikujete více atributů, musí přistupující uživatel být členem všech specifikovaných rolí; následující ukázka vyžaduje, aby uživatel byl členem jak PowerUser, tak ControlPanelUser.
Pokud používáte více atributů, uživatel přístupu musí být členem všech rolí; Následující příklad vyžaduje, aby uživatel byl členem rolí PowerUser i ControlPanelUser.
Přístup můžete dále omezit použitím dalších atributů autorizace role na úrovni akce;
Na úrovni metody můžete použít další atributy autorizace rolí k aplikaci dalších omezení použití;
V předchozích úryvcích kódu mohou členové role Administrátora nebo PowerUser přistupovat k řadiči a akci SetTime, ale pouze členové role Administrátora mohou přistupovat k Akce ShutDown.
V předchozím úryvku kódu mohou členové rolí Administrátor nebo PowerUser používat metody Controller a SetTime, ale pouze členové role Administrátora mohou používat metodu ShutDown.
Můžete také uzamknout kontrolér, ale povolit anonymní, neautentizovaný přístup k jednotlivým akcím.
Můžete také zablokovat kontrolér, ale anonymním uživatelům povolit používat samostatné metody bez autorizace.
Kontroly rolí založené na politikách Kontroly rolí založené na zásadách
Požadavky na roli lze také vyjádřit pomocí nové syntaxe politiky, kde vývojář zaregistruje politiku při spuštění jako součást konfigurace služby autorizace. To se obvykle děje v ConfigureServices() ve vašem Startup.cs souboru.
Role lze také dosáhnout použitím nové syntaxe politik, kde vývojáři registrují politiku jako součást konfigurace autorizační služby při startu. Obvykle se to přidává do ConfigureServices() souboru Sartup.cs.
Politiky se aplikují pomocí vlastnosti Policy na atributu AuthorizeAtribut;
Implementujte politiku použitím vlastnosti Policy nad vlastností AuthorizeAtribut.
Pokud chcete v požadavku specifikovat více povolených rolí, můžete je zadat jako parametry pro metodu RequireRole;
Pokud chcete v požadavku specifikovat více rolí, můžete je specifikovat jako více parametrů metody RequireRole:
jeho příklad autorizuje uživatele, kteří patří do rolí Administrator, PowerUser nebo BackupAdministrator.
Oprávněný uživatel v tomto příkladu bude patřit do role Administrator, PowerUser nebo BackupAdministrator.
Převedeno z:Přihlášení k hypertextovému odkazu je viditelné. |
Předchozí:Vyřešeno problém, kdy HttpContext.User.IsInRole() vždy vrací falseDalší:TS Chybějící radix parametr (radix)
|