ASP.NET - выход пользователя на закрытой вкладке браузера

Мне нужно надежно выйти из системы аутентифицированного пользователя в ASP.NET, когда вкладка браузера закрывается. Какое рекомендуемое решение?

Спасибо


person Faris Zacina    schedule 22.06.2012    source источник
comment
(Дубликат) Взгляните на этот ответ, он охватывает тот же вопрос: stackoverflow.com/a/287027/328968   -  person Peter    schedule 23.06.2012


Ответы (2)


Обычно логика выхода выполняется после завершения сеанса. Но если вам нужно было определить, когда страница закрыта, используйте это:

<body onunload="performMyLogoutLogic();">
...
...
</body>
person Jeremy    schedule 22.06.2012
comment
Это также приведет к выходу пользователя из системы, если он просто перейдет со страницы, скажем, на другую страницу того же сайта. - person Jon Sagara; 23.06.2012

Вы можете использовать общий обработчик для завершения сеанса и вызвать его перед загрузкой следующим образом:

function CloseSession( )
{
    location.href = 'KillSession.ashx?task=1'; 
}
window.onbeforeunload = CloseSession;

И в вашем KillSession.ashx сделайте это

 public void ProcessRequest(HttpContext context)
            {
                if(!String.IsNullOrWhiteSpace(Request.QueryString["task"].toString()))
                {
                 if(Request.QueryString["task"].toString()=="1")
                  {
                    Session["User"]==null;
                    context.Response.ContentType = "text/plain";
                    context.Response.Write("Good Bye!");
                   }
                }
            }
person Ashwin Singh    schedule 23.06.2012