|
|
Veröffentlicht am 07.06.2020, 21:25:56
|
|
|

133 von 153 Personen fanden das hilfreich Wenn eine Identität erstellt wird, kann sie zu einer oder mehreren Rollen gehören, zum Beispiel kann Tracy zu den Rollen Administrator und Benutzer gehören, während Scott nur zur Benutzerrolle gehören kann. Wie diese Rollen erstellt und verwaltet werden, hängt vom Backing-Store des Autorisierungsprozesses ab. Rollen werden dem Entwickler über die IsInRole-Eigenschaft in der ClaimsPrincipal-Klasse offengelegt.
Die neue Identität kann zu einer oder mehreren Rollen gehören, zum Beispiel kann Tracy zu den Rollen Administrator und Benutzer gehören, und während Scott nur zur Benutzerrolle gehören kann. Wie diese Rollen erstellt und verwaltet werden, hängt davon ab, wie der Autorisierungsprozess gespeichert wird. Die IsInRole-Methode der ClaimsPrincipal-Klasse vermittelt Entwicklern, wie sie die Rolle verwenden können.
Hinzufügen von Rollen prüft Hinzufügen von Rollenvalidierung
Rollenbasierte Autorisierungsprüfungen sind deklarativ – der Entwickler bettet sie in seinen Code ein, gegen einen Controller oder eine Aktion innerhalb eines Controllers, und legt Rollen fest, die der aktuelle Benutzer angeben muss Sei Mitglied von Dem, um auf die angeforderte Ressource zuzugreifen.
Rollenbasierte Authentifizierung ist claim-basiert, bei der Entwickler in ihren Code einbetten, indem sie einem Controller oder Methoden darin Rollen zuweisen und festlegen, dass Benutzer in einer Anfrage die entsprechenden Mitgliedschaftsanforderungen erfüllen müssen.
Zum Beispiel würde der folgende Code den Zugriff auf alle Aktionen auf dem AdministrationController auf Benutzer beschränken, die Mitglieder der Administrator-Gruppe sind.
Zum Beispiel beschränkt der folgende Code jede Methode im AdministrationController darauf, nur als Mitglied der Administrator-Gruppe verwendet zu werden.
Man kann mehrere Rollen als Komma-getrennte Liste angeben;
Du kannst mehrere zugewiesene Rollen zu einer Komma-Split-Liste hinzufügen:
Dieser Controller wäre nur für Nutzer zugänglich, die Mitglieder der HRManager- oder Finanzrolle sind.
Der Controller ist nur für Mitglieder der HRManager- oder Finanzrolle zugänglich.
Wenn du mehrere Attribute anwendest, muss ein zugreifender Benutzer Mitglied aller angegebenen Rollen sein; das folgende Beispiel verlangt, dass ein Benutzer sowohl Mitglied der PowerUser- als auch der ControlPanelUser-Rolle sein muss.
Wenn du mehrere Attribute verwendest, muss der Zugriffsbenutzer Mitglied aller Rollen sein; Das folgende Beispiel erfordert, dass ein Benutzer sowohl Mitglied der PowerUser- als auch der ControlPanelUser-Rollen ist.
Du kannst den Zugriff weiter einschränken, indem du zusätzliche Rollenautorisierungsattribute auf Aktionsebene anwendest;
Sie können zusätzliche Rollenautorisierungsattribute auf Methodenebene verwenden, um zusätzliche Nutzungsbeschränkungen anzuwenden;
Im vorherigen Code-Schnipsel können Mitglieder der Administrator- oder PowerUser-Rolle auf den Controller und die SetTime-Aktion zugreifen, aber nur Mitglieder der Administrator-Rolle können auf die Shutdown-Aktion.
Im vorherigen Codeschnipsel können Mitglieder der Administrator- oder PowerUser-Rollen die Controller- und SetTime-Methoden verwenden, aber nur Mitglieder der Administrator-Rolle können die ShutDown-Methode verwenden.
Du kannst auch einen Controller sperren, aber anonymen, nicht authentifizierten Zugriff auf einzelne Aktionen erlauben.
Du kannst auch einen Controller blockieren, aber anonymen Nutzern erlauben, ohne Genehmigung separate Methoden zu verwenden.
Richtlinienbasierte Rollenprüfungen Richtlinienbasierte Rollenprüfungen
Rollenanforderungen können auch mit der neuen Richtliniensyntax ausgedrückt werden, bei der ein Entwickler eine Richtlinie beim Start als Teil der Autorisierungsdienstkonfiguration registriert. Dies findet normalerweise in ConfigureServices() in Ihrer Startup.cs Datei statt.
Rollen können auch durch die Verwendung einer neuen Richtliniensyntax erreicht werden, bei der Entwickler eine Richtlinie als Teil der Konfiguration des Autorisierungsdienstes beim Start registrieren. Dies wird üblicherweise zu den ConfigureServices() der Sartup.cs-Datei hinzugefügt.
Richtlinien werden mit der Policy-Eigenschaft auf dem Attribut AuthorizeAttribute angewendet;
Implementieren Sie die Richtlinie, indem Sie die Policy-Eigenschaft über der AuthorizeAttribut-Eigenschaft verwenden.
Wenn du mehrere erlaubte Rollen in einer Anforderung angeben möchtest, kannst du sie als Parameter für die RequireRole-Methode angeben;
Wenn Sie mehrere Rollen in einer Anfrage angeben möchten, können Sie sie als mehrere Parameter der RequireRole-Methode angeben:
sein Beispiel autorisiert Benutzer, die den Rollen Administrator, PowerUser oder BackupAdministrator angehören.
Der autorisierte Benutzer in diesem Beispiel gehört zur Rolle Administrator, PowerUser oder BackupAdministrator.
Übertragen von:Der Hyperlink-Login ist sichtbar. |
Vorhergehend:Das Problem gelöst, dass HttpContext.User.IsInRole() immer falsch zurückgibtNächster:TS Fehlender Radix-Parameter (radix)
|