Ich arbeite an einem ASP.NET MVC5-Projekt mit Repository Muster zum ersten Mal. Es hat viele Rollen und es wird eine Anzahl von Benutzern in jeder Rolle geben. Bis jetzt habe ich verschiedene Model-Entitäten erstellt und hinzufügen, aktualisieren, löschen Szenarien funktionieren gut. Beim Testen der Dinge habe ich festgestellt, dass ein Benutzer die Entitäten aktualisieren kann, die ihm nicht gehören.Einen Benutzer beschränken, um nur auf seine Entitäten zuzugreifen In Entity framework6 Repository pattern
Ich möchte den Benutzer auf den Zugriff beschränken, bearbeiten, aktualisieren, löschen Sie nur die Entitäten (Zeilen in db), die dem Benutzer selbst gehören, nicht die anderen.
Ich weiß, ich muss irgendwo die userId
des aktuellen angemeldeten Benutzers überprüfen, aber wo sollte ich dies wo Bedingung im Fall von Repository pattern with Entity Framework
setzen.
Zwei Möglichkeiten, die mir in den Sinn kommen: Ändern der Modelle in userId
-Eigenschaft in jeder Entität oder Verbinden jeder Entität mit ihrer übergeordneten Entität, um die zugehörigen Benutzerdetails zu erhalten (Die komplette Kette von Entitäten, um die userId
zu erhalten).
Was wäre der bevorzugte Weg, dies zu implementieren? Danke!
beginnen am Anfang zuweisen können: Was ist Ihr Wunsch bussiness Zweck. Mit anderen Worten, wie muss die Funktionalität funktionieren? Ist es möglich, den Datenzugriff basierend auf Benutzer/Rolle in der Hierarchie Ihres Domänenmodells zu beschränken? Oder möchten Sie, dass jede Entität über einen verwandten Benutzer (Id) verfügt und daher auf jeder Ebene Ihres Domänenmodells eine Einschränkung aufweist? –
Dies ist auf Rollenbasis nicht möglich, da viele Benutzer dieselbe Rolle innehaben. Nur "userId" kann sicherstellen, dass die Entität mit ihm verwandt ist oder nicht. – vivek
Warum haben sie die Möglichkeit, diese unerlaubten Änderungen zu machen? Meinst du, sie sollten nicht einmal die Daten anderer Benutzer sehen? –