/ / MVC2 i Session Start Event - asp.net, asp.net-mvc, sesja

MVC2 i Session Start Event - asp.net, asp.net-mvc, sesja

Ustawić:

Kontroler konta z typowym logowaniem /wyloguj się z szablonu wypalonego. Niewiele modyfikacji tutaj na stronie logowania. Korzystam z niestandardowego dostawcy członkostwa (SQL), ale nie sądzę, żeby miało to wpływ na to, co próbuję tutaj zrobić.

Wymagania:

Klient chce obsługiwać licencje, ograniczając jednoczesnych użytkowników, a nie wszystkich użytkowników. Po odwołaniu się do tego opublikuj tutaj, Postanowiłem sprawić, by to działało tak, jak powinienemrobić. Ma to na celu śledzenie maksymalnej i bieżącej liczby użytkowników w każdej organizacji, która zarejestrowała się w naszej aplikacji. Nie ma problemu, wystarczy mieć aplikację („maks.”) I aplikację („bieżącą”), które są hashtabami z kluczem będącym identyfikatorem organizacji i wartością będącą bieżącą lub maksymalną liczbą użytkowników dla organizacji. W Session_Start zwiększam liczbę obecnych użytkowników, sprawdzam, czy przekracza ona maksimum i albo a) przekierowuję na stronę błędu lub b) pozwalam im kontynuować to, co muszą zrobić. W Session_End zmniejszyłbym liczbę.

Problem:

Podczas korzystania z formularzy ServiceService.Zaloguj się, co jest faktycznie przechowywane w sesji? Nie mogę zebrać żadnych informacji o mojej sesji w session_start oprócz identyfikatora sesji. Nie mogę więc zwiększyć prawidłowego numeru do śledzenia użytkownika. Nie mogę dodać zmiennej do sesji, ponieważ session_start już uruchomił się, zanim otrzymam taką możliwość.

Odpowiedzi:

1 dla odpowiedzi № 1

Pojęcie, z którym sesja jest w jakiś sposób związanauwierzytelnianie jest mitem. Są całkowicie od siebie niezależni. Sesję można nawet udostępnić wielu użytkownikom, jeśli zdarzy im się udostępnić swój klucz sesji; dlatego nigdy nie umieszczasz poufnych informacji w sesji. Sesja może również wygasnąć, gdy jesteś zalogowany. Podobnie, sesja jest nadal aktywna po wylogowaniu, chyba że ją wyraźnie porzucisz.

Sesja bardziej przypomina pamięć podręczną specyficzną dla użytkownika.

Musisz więc zaakceptować ten fakt i dostosować się do niego. Sprawdź i sprawdź, czy bieżący użytkownik jest uwierzytelniany podczas uruchamiania sesji. Będziesz także musiał zwiększać wartość podczas logowania, ponieważ sesja już się rozpoczęła. Itd.