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.