ASP.net-Rollen und -Projekte
BEARBEITEN - Meine ursprüngliche Frage wurde umgeschrieben, um ein bisschen mehr Informationen zu geben
Hintergrundinformation
Bei meiner Arbeit arbeite ich an einer ASP.Net-Webanwendung für unsere Kunden. In unserer Implementierung verwenden wir Technologien wie Formularauthentifizierung mit MembershipProviders und RoleProviders. Alles lief gut, bis ich einige Schwierigkeiten beim Konfigurieren der Rollen bekam, da die Rollen nicht systemweit sind, sondern sich auf die Kundenkonten und -projekte beziehen.
Ich kann unsere genaue Aufstellung / Formel nicht nennen, weil ich denke, dass unsere Firma das nicht gutheißen würde ...
Was ist ein Kunde / Projekt?
Unser Unternehmen stellt unseren Kunden jährlich (oder in anderen Intervallen) Managementinformationen zur Verfügung.
In unseren Systemen besteht ein Kunde / Vertrag aus:
Einrichtung der Extranet-Site
Schließlich möchten wir, dass alle Kunden über unser Online-System auf ihre Verwaltungsinformationen zugreifen können. Das Extranet besteht aus zwei Sites:
Die Messstelle ist der interessanteste Teil des Extranets. Wir erstellen Submodule für neue Übersichten, Berichte, die Verwaltung und Pflege von Ressourcen, die für die Forschung wichtig sind.
Unsere Visual Studio-Lösung besteht aus einer Reihe von Projekten. Eine Webanwendung namens Portal als Basis. Die Sites und Module sind virtuelle Verzeichnisse in dieser Anwendung (erleichtert die gemeinsame Nutzung von MasterPages unter anderem).
Welche Rollen?
Die folgenden Benutzer (gelesen: Rollen) werden das System verwenden:
Was ist mit ASP.Net-Benutzern?
Das System wird viele ASP.Net-Benutzer haben, konzentrieren wir uns auf die Kundenbenutzer:
URL-Struktur
Dies sind typische URLs in unserer Anwendung:
Wir erstellen auch eine Dokument-URL, unter der Sie ein bestimmtes Dokument über seine GUID anfordern können. Das System muss prüfen, ob der Benutzer Rechte an dem Dokument hat. Das Dokument bezieht sich auf eine Messung, der Benutzer oder bestimmte Rollen haben bestimmte Rechte an dem Dokument.
Was ist das Problem? (schließlich ;))
Rollen sind nicht genug, um zu bestimmen, was ein Benutzer sehen / auf ein bestimmtes Element zugreifen / es herunterladen darf. Es reicht nicht aus zu sagen, dass Manager auf ein bestimmtes Navigationselement zugreifen können. Wenn der Benutzer Measurement 1000 anfordert, müssen wir überprüfen, ob der Benutzer nicht nur eine Manager-Rolle hat, sondern auch eine Manager-Rolle für Measurement 1000.
Zusammengefasst:
Wie können wir Benutzer auf ihre Konten / Messungen beschränken?
(Denken Sie daran, Superuser sehen alle Messungen, einige Manager nur bestimmte Messungen)
Wie können wir Rollen auf Produkt- / Messebene anwenden? (Benutzer X könnte Hauptkontakt für Messung 1 sein, aber nur ein Manager für Messung 2)
Wie können wir den Managerzugriff auf den Berichtsbildschirm und nur auf die Berichte ihrer Abteilung beschränken?
Alles mit der Magie von asp.net-Klassen, vielleicht mit einer benutzerdefinierten Implementierung eines Rollenproviders.
Ähnliche Stackoverflow-Frage / Problem
ASP.NET, Verwalten von Benutzern mit unterschiedlichen Rollentypen