Jedna instancja obiektu na użytkownika po poprawnej autoryzacji

0

Witam.
Chciałbym zapytać o "zarządzanie" obiektami w całej aplikacji. Mam potrzebę stworzenia obiektu per user po poprawnej autoryzacji.

    public class OptimoService : IOptimoService
    {
        public readonly ILogin Login;

        public OptimoService()
        {
            if(Login == null)
            {
                ApplicationClass Application = new ApplicationClass();
                Login = Application.LockApp(256, 5000, null, null, null);
                Login = Application.Login("operator", "hasło", "firma", 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
            }
        }
    }

Obiekt ILogin potrzebuje mieć jeden na użytkownika. Jeśli dobrze rozumiem to takie rozwiązanie spowoduje, że konstruktor zostanie wywołany z każdym wstrzyknięciem serwisu. Jest jeszcze opcja w Startup.cs

services.AddSingleton<IOptimoService, OptimoService>();

Ale wtedy obiekt będzie stworzony dla pierwszego zalogowanego, pierwszego wstrzyknięcia.

Opis
Ogólnie rzecz biorąc potrzebuje rozwiązania do zalogowania kilku operatorów do Comarch Optima poprzez moje API i trzymaniu (Optimowej) sesji, aż do wylogowania się. Każdy operator ma swoje dane do logowania i swoje ustawienia w Comarch Optima co może, a czego nie. Stąd taka potrzeba. Jedyny problem jaki może mnie pokonać to zamknięcie przeglądarki. Wydaje mi się, że token nie powinien mieć ważności i działać tylko na "aktywnej sesji". Zamknięcie przeglądarki spowoduje, że użytkownik będzie musiał się zalogować na nowo. Może to być trochę uciążliwe.

0

Nie wiem czy złapałem istotę problemu, ale czy nie możesz do tego użyć local storage?

0

To jest po stronie serwera (webapi), a nie klienta ;-)

0

A użycie bazy danych wchodzi w grę? Bo chcesz mieć zalogowanego użytkownika, ale nie chcesz nic trzymać po stronie klienta? W jaki sposób uwierzytelniasz usera?

0

W moim przypadku uwierzytelnianie jest niestandardowe. Autoryzacja polega na logowaniu się do zewnętrznego systemu ERP.

0

W takim razie może multiton pattern, wydaję mi się, że coś takiego tutaj będzie ok

1 użytkowników online, w tym zalogowanych: 0, gości: 1