Ich bin eine Website in MVC3 Schreiben, mit Entity (zu Postgres verknüpft, aber nicht sicher, dass ein Teil relevant ist.Filtern von Daten durch den Zugriff der Benutzerrechte
Ein Benutzer Teil einer Reihe von „Ligen“ ist, und erstellt ein "Ereignis" gegen eine dieser Ligen.
Es wird andere Benutzer geben, die Zugriff auf diese Liga haben, und wenn sie eine Liste der Ereignisse anzeigen, brauche ich die Liste, um nur diese "Ereignisse" anzuzeigen das sind Teil von "Ligen" sie haben Zugang zu.
Jetzt gibt es zahlreiche Möglichkeiten, dass dies erreicht werden könnte, aber ich bin auf der Suche nach den elegantesten und weithin akzeptiert sei "der richtige Weg".
Derzeit wird die User -> Liga-Beziehung an der gleichen Stelle wie der Rest der Daten gehalten, daher kann ich einfach nach den Ligen filtern, ohne ein Problem. Mein Problem ist, dass ich nicht sicher bin, ob ich auf den HttpContext zugreifen sollte oder nicht, um die UserId innerhalb der Repository-Ebene für das Filtern zu erhalten.
Wenn ich das oben Gesagte nicht mache, erwäge ich, die RoleMembership-Funktionalität zu verwenden und Ligen, Rollen zu erstellen, und dann gibt es eingebaute Funktionen, um das zu tun.
Die Frage ist, was ist die beste Praxis für das Filtern von Ergebnisdaten durch Benutzerzugriff in MVC3/Entity?
Blogs/Tutorial Links werden bevorzugt, aber vollständige Antworten können auch akzeptiert werden ...
ich Ninject für DI bin mit, so dass kein Problem. Ich bin mir immer noch nicht sicher, wo der Filter angewendet wird ... kannst du das weiter ausführen? – Martin
@Martin Ich fügte eine grobe Skizze von dem hinzu, was ich meinte, hoffentlich hilft das. Der Schlüsselpunkt, den ich versuche, besteht darin, die Rollenabhängigkeit nicht in das Repository zu mischen und niemals direkt gegen HttpContext, sondern gegen eine von Ihnen definierte Abhängigkeit zu codieren. – McGarnagle