/ / jak złapać koniec sesji po wciśnięciu paska tytułu przycisk zamykania asp.net c # - c #, asp.net, serwer sql, stan sesji, sessionend

jak złapać koniec sesji po naciśnięciu przycisku paska tytułu asp button asp.net c # - c #, asp.net, sql-server, session-state, sessionend

Mam pytanie dotyczące bolenia.aplikacja internetowa. Aplikacja internetowa wykorzystująca stan sesji serwera SQL. Wylogowanie może usunąć sesję, ale naciśnij przycisk zamykania paska tytułu, aby usunąć sesję. Które zdarzenia mogą kontrolować po naciśnięciu przycisku zamykania paska tytułu. Czytałem o zdarzeniu session_end, które można złapać po naciśnięciu przycisku zamykania paska tytułu. Ale nie może wystąpić zdarzenie session_end przy użyciu stanu sesji serwera SQL. Jak złapać?

Odpowiedzi:

0 dla odpowiedzi № 1

Zamknięcie przeglądarki nie kończy sesjiserwer, serwer nie może odróżnić otwartej lub zamkniętej przeglądarki, po prostu odbiera żądanie, a następnie wysyła odpowiedź i siedzi tam, czekając na kolejne żądanie. Po upływie określonego czasu bez żądań sesja upłynie limit czasu i wydarzenie session_end zostanie uruchomione.

Jeśli chciałbyś zakończyć sesję, musiałbyś wysyłać jakieś żądania ajax z powrotem do serwera po zamknięciu przeglądarki, aby serwer wiedział, że kończy sesję.

EDYTOWAĆ

możesz zrobić coś takiego za pomocą jQuery

$(window).unload(function() {
$.post("someurl");
});

zamień someurl na adres URL usługi sieci Web, procedury obsługi lub kontrolera mvc lub podobnego, który informuje serwer, że przeglądarka została zamknięta.

Potem po prostu serwer

Session.Abandon();