Hej,
chciałbym zrobić coś takiego, że w mojej aplikacji, korzysta wielu użytkowników na raz na jednym komputerze. I chciałbym mieć możliwość ich bardzo szybkiego przełączania. Przychodzi gość rano i następnie się loguje i koniec, potem przychodzi inny, też się loguje. W momencie gdy ten pierwszy chce skorzystać to tylko klika na swój login z listy i aplikacja działa na jego danych. Jak coś takiego osiągnąć? Jakieś wskazówki itd.
Po zalogowaniu zapisujesz w bazie danych ostatnia datę logowania.
Gdy uzytkownik chce sie 'przelaczyc' to logika odpowiedzialna za logowanie sprawdza czy ostatnia data logowania wybranego uzytkownika byla w dniu bieżącym (czy też innym, określonym odstępie czasu) - jeżeli tak, to uzytkownik bieżący zostaje wylogowany, a wybrany użytkownik zostaje zalogowany. Jeżeli warunek odstępu czasowego nie został spełniony to użytkownik musi podać hasło.
Boże jedyny co to za herezja??
Po zalogowaniu zapisujesz w bazie danych ostatnia datę logowania.
Gdy uzytkownik chce sie 'przelaczyc' to logika odpowiedzialna za logowanie sprawdza czy ostatnia data logowania wybranego uzytkownika byla w dniu bieżącym (czy też innym, określonym odstępie czasu) - jeżeli tak, to uzytkownik bieżący zostaje wylogowany, a wybrany użytkownik zostaje zalogowany. Jeżeli warunek odstępu czasowego nie został spełniony to użytkownik musi podać hasło.
Taki śliczny pseudokod niżej : ]
Login -> Add to List<User> -> Kliknięcie na usera -> CurrentUser = Selected User -> Logout -> remove from List<User> current
Herezja?
- Po co obciazac aplikacje webowa globalna kolekcja z uzytkownikami? Aplikacje webowe maja byc mozliwie lekkie.
- Pomijasz baze danych - jezeli uzytkownik zostanie usuniety z bazy danych, lub jego dane/uprawnienia zostana zmienione, to aplikacja w takim wypadku pozwoli mimo wszystko na wybranie tego uzytkownika/wykonanie operacji do ktorej stracil dostep.
Szczerze to to pierwsze rozwiązanie bardzo mi się podoba, spełnia w 100% to co potrzebuje, rozwiązuje wszystkie problemy jakie do tej pory widziałem. I jestem w trakcie implementowania tego. Dzięki!