Как убить сессию, когда пользователь закрыл браузер без выхода

Я разрабатываю одно приложение aspnet, в котором я использую сеансы. если пользователь войдет в приложение и нажмете на выход, я закрываю сессию.

предположим, что если пользователь не нажимает на выход из системы и закрывает браузер. как убить сессию, когда пользователь закрыл браузер без выхода

3 ответа

Очень сложное задание:

  • использовать сеансы с очень маленьким тайм-аутом / у вас будет срок действия /

  • используйте скрытый скрипт /iframe для проверки связи с сервером / у вас будет соединение /

  • обрабатывать событие onunload в окне / можно обойти /

Пример кода:

window.onunload = function ()  
{    
    if((window.event.clientX<0) && (window.event.clientY<0)) {

       window.open("logoff.aspx");                  
    }    
}

Ваше приложение не сможет узнать, что пользователь закрыл браузер. Сессия будет закрыта на основе Session.Timeout

Если пользователь не обновляет или не запрашивает страницу в течение периода ожидания, сеанс заканчивается.

Вы можете определить, что должно произойти, когда сеанс истекает в Global.asax.cs.

protected void Session_End(Object sender, EventArgs e)
{
    // Do stuff here...
}

Изменить: веб-сервер не может знать, что вы закрыли веб-браузер.

Другие вопросы по тегам