2017-12-29 21 views
0

Ich versuche herauszufinden, wie ich meinen Kontext basierend auf einer Rolle dynamisch autorisieren kann.Db Generic Resource Authorization

Mein Problem ist, dass nach dem Anwenden meiner Frage, wie kann ich dies zum Standard-Abfrage für das Set machen.

fand ich eine gyst die here

Aber .Net Kern enthält mit dem alten DbSet funktioniert nicht IDBSet

Wie kann ich eine benutzerdefinierte dbset erstellen oder Wie kann ich die vorhandenen dbSet filtern?

+0

@SlavaUtesinov wird, dass nach wie vor mit dem Speichern arbeiten und die Verbindung mit dem Wechsel Tracker usw. Ich fühle mich wie sollte es eine einfache Möglichkeit, dies zu filtern gesetzt –

Antwort

1

Es gibt besseren Ansatz über global filters:

public class AuthorizationContext : DbContext 
{ 
    static AuthorizationContext() 
    { 
     QueryFilterManager.Filter<Orders>(q => q.Where(x => x.Price <= 5000)); 
    } 

    public AuthorizationContext() 
    { 
     QueryFilterManager.InitilizeGlobalFilter(this); 
    } 
} 
+0

Ich brauche meine Kontext, um dies standardmäßig zu filtern. Der Entwickler muss also nicht daran denken, den Kontext zu filtern. Aber normalerweise könnte das so funktionieren plus 1 –

+0

Ok, in diesem Fall können Sie _global filters_ verwenden, sehen Sie sich die aktualisierte Antwort an. –

+0

Danke, ich werde das heute Abend untersuchen. Ich würde lieber eine zusätzliche Abhängigkeit hinzufügen, aber wenn dies funktioniert, funktioniert es. Ich werde das heute Abend korrekt markieren, wenn es das tut –