Rollenkonfigurationsadministrator

PortalRoleAdmin ist die Administrationsseite für Portalrollen: Welche Rollen das Portal hat und welche davon einem neu registrierten Benutzer zugewiesen werden. Sie wird mit dem Framework auf beiden Stacks ausgeliefert, sodass ein Portal Verbesserungen daran erkennt, indem es seine Pakete aktualisiert – die Seite, die du schreibst, ist das Rollengatter und die Überschrift.

Was steht auf der Seite

Zwei Raster, jeweils mit Neu, Öffnen und Löschen. Jede Änderung wird geschrieben, sobald man sie speichert oder löscht – es gibt kein Seitenebene-Speicher.

  • Portalrollen — ein Name und eine Beschreibung, die in einem Seitenpanel bearbeitet werden. Was eine Rolle gewährt , ist hier nicht konfiguriert: Sie ist beim Start im Code an den Namen der Rolle gebunden, sodass das Hinzufügen einer Rolle sie zuweisend statt mächtig macht, und eine Umbenennung trennt sie von dem, was sie gewährt.
  • Rollenkonfigurationen — Welche Rolle ein neu registrierter Nutzer erhält und wann – niemandem, allen oder demjenigen, der einer Regel entspricht, die du schreibst.

Regeln, die entscheiden, wer sich qualifiziert

Eine Regel ist eine FetchXML-Abfrage über contact. Wenn sich jemand registriert, grenzt das Portal die Abfrage auf diesen Kontakt ein und weist die Rolle zu, wenn Dataverse sie zurückgibt. Joins zu verwandten Tabellen werden anerkannt, und Spalten, sortieren und top machen keinen Unterschied an der Antwort, sodass eine aus einer Ansicht kopierte Abfrage so funktioniert, wie sie ist.

In React wird die Regel mit dem FetchXML Query Builder geschrieben, der mit deaktivierten Aggregaten an Contact gepinnt ist, auf einer eigenen Seite, damit der Builder Platz hat. Run zeigt die Kontakte an, mit denen die Regel heute übereinstimmt – die einzige Möglichkeit herauszufinden, ob die von Ihnen gemeinten Personen ausgewählt werden.

In Blazor wird dieselbe Spalte als FetchXML-Text bearbeitet; es gibt noch keinen Blazor-Abfragegenerator.

Eine gebrochene Regel scheitert still und leise

Eine Regel, die leer ist, nicht gültig ist, eine Aggregate-Abfrage ist oder in einer anderen Tabelle als Contact verwurzelt ist, passt zu niemandem. Nichts meldet es als Fehler – die Rolle wird einfach nie zugewiesen. Der React-Editor warnt vor jedem dieser Regeln über dem Builder, während Sie die Regel schreiben.

Hinzufügen zu deinem Portal

Beide Projektvorlagen enthalten bereits diese Seite unter /RoleConfigurationAdmin, unter dem Admin-Menü. Um es selbst hinzuzufügen, gib eine Seite zur Rolle SystemAdmin ein Gate und füge die Komponente ein:

React
Blazor

Die Konfigurationsseite (React)

configurationUrl öffnet eine Konfiguration auf einer eigenen Seite statt in einem Seitenpanel. Lässt man sie aus, wird das Panel verwendet, was funktioniert, aber dem Abfrage-Builder wenig Spielraum lässt. Die Seite, auf die es zeigt, liefert den Datensatzkontext und den Speichern-Button; das Formular selbst ist das PortalRoleConfigurationFormdes Frameworks:

Webrollen unter erweiterter Autorisierung

Auf einem Portal mit erweiterter Autorisierung erhalten Nutzer Power Pages-Webrollen statt Portalrollen: Power Pages gewährt jedem Nutzer die Dataverse-Sicherheitsrolle, die es mit seinen Webrollen kombiniert, und was diese Rolle ermöglicht, stammt aus den Tabellenberechtigungen der Seite. WebRoleAdmin ist das Gegenstück zu PortalRoleAdmin diesem Modell – ein Raster von Regeln, das jedem neuen Benutzer oder denen, die einer exakt oben geschriebenen Regel entsprechen, eine Webrolle übergibt. Die Regeln befinden sich in der Power Portals Pro Enhanced Authorization-Lösung , die Power Pages in der Umgebung installieren muss.

Beide Projektvorlagen zeigen die passende Seite an: Das Admin-Menü bietet Web-Rollenkonfiguration, wenn erweiterte Autorisierung aktiviert ist, und Rollenkonfiguration, wenn sie ausgeschaltet ist. Ihre eigene Navigation kann dieselbe Wahl mit ISecurityModelInfo.IsEnhancedAuthorizationEnabledAsync() in Blazor oder useAuthOptions() in React treffen, beide wurden von GET /api/auth/options.

React
Blazor

Die Webrollen selbst befinden sich in Power Pages

Erstelle Webrollen und gib ihnen Tabellenberechtigungen in der Power Pages Management-App – diese Seite entscheidet nur, wer sie erhält. Eine Webrolle ohne gepaarte Sicherheitsrolle gewährt nichts, bis Power Pages eine solche Stelle koppelt, und eine Webrolle, die zu einer anderen Seite als der des Portals gehört, wird übersprungen; das Portal protokolliert beide. Rollen- und Privilegienänderungen können ein bis zwei Minuten dauern, um einen angemeldeten Nutzer zu erreichen.

API-Referenz

Reagieren Blazor

PortalRoleAdmin Baureihe

PortalRoleConfigurationForm

Reagieren Blazor

PortalRoleConfigurationForm Baureihe

WebRoleAdmin

Reagieren Blazor

WebRoleAdmin Baureihe

WebRoleConfigurationForm

Reagieren Blazor

WebRoleConfigurationForm Baureihe