Ich frage mich, wie Sie den netcore-Abhängigkeitscontainer für mvc mit einer Instanz pro Benutzer einrichten.Netcore-Abhängigkeitsinjektion pro Benutzer
Nach https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection#service-lifetimes-and-registration-options gibt es derzeit nur drei Methoden, ein Leben lang festgelegt wird: Singleton (eine Instanz pro Anwendung), scoped (eine Instanz innerhalb eines gemeinsamen Httprequest), vorübergehende (eine Instanz pro DI Instanz Anfrage)
Hat hat jemand versucht, eine Instanz pro Benutzer zu erstellen? Ich wäre gespannt, wie es gemacht wird - wenn nicht, werde ich wahrscheinlich irgendwann die Dokumente durchforsten, um zu sehen, wie es gemacht werden kann und die Lösung teilen.
Sie machen eine Instanz pro Anfrage (und nicht pro Benutzer). Die Instanz ist während der gesamten Lebensdauer der Anfrage verfügbar. Können Sie näher erläutern, wie Sie die Instanz verwenden möchten? – alltej
Im Wesentlichen habe ich einen Login-Controller, wo ich die Anmeldeinformationen einer Rest-API eingeben. Diese übrigen Client-Instanzen werden mit den Anmeldeinformationen initialisiert, die bei der Anmeldung übergeben werden. Daher würde mein Plan sein, das Fabrikregister für die Instanz zu verwenden, indem ich die Login-Informationen, die ich innerhalb der Claims-Identität speichere, einmal pro Benutzer speichere. Während dies bereits auf einer Pro-Umfang/pro Anfrage-Basis funktioniert, ist es suboptimal in Bezug auf die Leistung. – Dbl
(1) Speicher-Caching mit Timeout; (2) Singleton-Wörterbuch mit einigen Token als Schlüssel (Sitzungs-ID?) - Sie benötigen manuelle Bereinigung; (3) [CookieTempData] (https://luisfsgoncalves.wordpress.com/2016/07/29/cookie-based-tempdata-for-asp-net-core/) – Dmitry