Ich schrieb meine Implementierung von IDbCommandTreeInterceptor
, um Abfragen basierend auf dem Kontext zu ändern.EF DB Interceptor Zugriff auf Kontext (wie aktuelle Benutzer und so weiter)
In meiner speziellen Situation muss ich auf Benutzerobjekt im Interceptor zugreifen, um zu bestimmen, was ein Benutzer mit Tabelle tun kann, die abgefragt wurde.
Es ist meine Vision der Implementierung von Sicherheit auf Zeilenebene. In meinem DbInterceptor bekomme ich das Benutzerobjekt, suche nach Rollen und filtere Zeilen aus, auf die ein Benutzer keinen Zugriff hat.
Jetzt meine Frage.
Ich lese einige Artikel und verstehe, dass DbInterceptors
in einem anderen Thread (nicht in der gleichen HttpContext.Current
vorhanden) ausgeführt werden kann.
Wie implementieren/organisieren Sie diese Art von Dingen? Ich möchte Zugriff auf den Kontext haben (welcher Benutzer anfragt usw.).
Ich verwende OData WebAPI
.
Es ist nicht empfehlenswert, in Ihrem Datenzugriffscode auf HttpContext.Current zuzugreifen. Vielleicht können Sie diese Information injizieren. –