Czy istnieje sposób sprawdzenia, czy identyfikator sesji jest poprawny w kontekście istniejącego żądania? W tym przypadku, jeśli otrzymam identyfikator sesji, a ja jestem aktualnie w innej sesji zainicjowanej przez żądanie HTTP i jestem na stronie lub w jakiejś klasie, czy mogę zweryfikować ten identyfikator sesji, jeśli jest prawidłowy i obecnie istnieje i nie został porzucony?W ASP.Net, Czy mogę dowiedzieć się, czy inna sesja istnieje lub jest ważna przez identyfikator sesji?
Powodem tego jest, że musimy zablokować proces logowania użytkownika na stronie projektu, nad którym pracuję, aby każdy użytkownik mógł być zalogowany tylko raz. Myślałem o tym, aby dodać kolumnę identyfikatora sesji do tabeli użytkownika, jeśli jest ona pusta, wylogowuje się i jest ustawiana po zalogowaniu się i wyczyszczeniu po wylogowaniu lub po Session_End w pliku global.asax. Jeśli jednak z jakiegoś powodu sesja zostanie przerwana bez jej usunięcia, muszę mieć możliwość ponownego zalogowania się, w takim przypadku za każdym razem, gdy się logują i odnajduje identyfikator sesji w tej kolumnie, myślę, że powinno to w jakiś sposób sprawdzić, czy to ID sesji jest aktywna i ważna, jeśli nie, to będzie ją przywrócić do ich nowego Session ID i pozwolić im się zalogować.
Dzięki
Czy musisz utrzymywać sesję na zawsze? Oznacza to, że ASP .NET ostatecznie zrezygnuje z wygasłych sesji. Ale z punktu widzenia użytkownika, czy stan aplikacji zawsze powinien pozostać taki sam? – Yuck
Nie mamy, mamy 30-minutowy, przesuwny czas, który będzie wymagał od użytkownika, aby się zalogować. Nie używamy żadnego uwierzytelniania opartego na plikach cookie, tylko aktywna sesja i przechowywanie obiektu użytkownika w nim. Po przekroczeniu limitu czasu sesje są "wylogowane" i muszą się ponownie zalogować. –