![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 24.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam dwa pytania natury projektowej. Zrobiłem sobie prostą klasę do obsługi logowania. Po zalogowaniu w sesji trzymam tylko id usera natomiast przy każdym odświeżeniu strony pobieram z bazy nazwę użytkownika (jedna sqlka) i uprawnienia do modułów (druga sqlka). I tu pytanie czy takie podejście jest dobre czy może lepiej po zalogowaniu wczytać do sesji przynajmniej nazwę użytkownika co wyeliminowało by jedno zapytanie? Jak u was w aplikacjach jest to rozwiązane ile rzeczy trzymacie w sesji czy tylko te najważniejsze czy używacie ją dość mocno jako "magazynek" ? Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 3.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Ja trzymam w sesji nazwę użytkownika i zmienną okreśającą poziom uprawnień. Nie wiem, czy jest to super fachowo, ale dział i jest dosyć proste do oprogramowania Pozdrawiam |
|
|
![]()
Post
#3
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Nie ma przeszkód, byś również inne dane usera trzymał sobie w sesji.
Natomiast uprawnienia odczytuj z bazy. Dlaczego? A np. dlatego, że jeśli ktos się zaloguje, a w międzyczasie admin zmieni mu uprawnienia dostępu do któregoś z modułów, on nadal będzie miał do niego dostęp, bo uprawnienia sprzed zmiany będą zapisane w sesji. |
|
|
![]()
Post
#4
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Elegancko było by trzymać tylko ID użytkownika, a inne dane wyciągać z bazy w tych miejscach które są potrzebne, ale jak wiadomo programowanie to sztuka kompromisów i na poczet wydajności lepiej trzymać wszystko w sesji.
(...) Natomiast uprawnienia odczytuj z bazy. Dlaczego? A np. dlatego, że jeśli ktos się zaloguje, a w międzyczasie admin zmieni mu uprawnienia dostępu do któregoś z modułów, on nadal będzie miał do niego dostęp, bo uprawnienia sprzed zmiany będą zapisane w sesji. To się wyloguje i zaloguje jeszcze raz, wyobraź sobie że przykładowo na naszej klasie za każdym razem jest odpytywana baza o to czy użytkownik ma dostęp do danej podstrony. |
|
|
![]()
Post
#5
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
No właśnie - skoro za każdym razem jest ona odpytywana, po co trzymac uprawnienia w sesji ?
A co do wylogowania/zalogowania jeszcze raz: jeśli admin usunie komuś uprawnienia do czegoś, do czego ten ktoś chciałby mieć jeszcze chwilkę dostęp, na pewno nie strzeli sobie w stopę robiąc logout/login, tylko będzie korzystał, dopóki ma stare uprawniena w sesji. Chodzi mi o sytuację, gdy ma w tym korzyść. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 0 Dołączył: 13.07.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Jak za każdym razem będziesz odpytywać bazę o takie rzeczy to zobaczysz jak to spowolni bazę... Wyobraź sobie że masz kilka tysięcy użytkowników danej strony i baza musi obsłużyć kilkadziesiąt tysięcy zapytań tych użytkowników... Czyżby strony ładowały się kilka sekund?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 23.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie - skoro za każdym razem jest ona odpytywana, po co trzymac uprawnienia w sesji ? A co do wylogowania/zalogowania jeszcze raz: jeśli admin usunie komuś uprawnienia do czegoś, do czego ten ktoś chciałby mieć jeszcze chwilkę dostęp, na pewno nie strzeli sobie w stopę robiąc logout/login, tylko będzie korzystał, dopóki ma stare uprawniena w sesji. Chodzi mi o sytuację, gdy ma w tym korzyść. To może kodzik, dzięki któremu admin będzie mógł zmienić u użytkownika, by po odświeżeniu strony go wylogowało? |
|
|
![]()
Post
#8
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
No co racja to racja z tymi zapytaniami. Ale w aplikacjach zamkniętych, z których korzysta w porywach kilkadziesiąt osób naraz nie widzę problemu.
Reasumując: każdy sposób jest dobry, jeśli spełnia oczekiwania twórcy i uzytkowników, działa zgodnie z oczekiwaniami i nie powoduje błędów. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 012 Pomógł: 109 Dołączył: 26.09.2003 Skąd: nexis.pl Ostrzeżenie: (0%) ![]() ![]() |
Z prawidłowego punktu widzenia w sesji powinieneś trzymać tylko ID użytkownika i bardzo prawdopodobne jest, że nie tworzysz aplikacji dla tysięcy użytkowników, więc nie odbije się to w żaden sposób na Twojej aplikacji.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 23:28 |