Prorammer81
Prorammer81

Reputation: 198

Detect Browser Close on Asp.net

I want to do some functionality on log-out, if the user directly closed his browser then same functionality want to do, we can not do on page unload because there are more than 100 pages in my website because this will work on redirection from each page

Thank You

Upvotes: 7

Views: 21083

Answers (3)

Mike Kingscott
Mike Kingscott

Reputation: 477

Isn't this what Session_OnEnd in global.asax is for?

This event isn't triggered when the browser is closed.

Upvotes: 1

Muhammad Hasan Khan
Muhammad Hasan Khan

Reputation: 35126

<script type="text/javascript">
var closing = true;
$(function () {
    $("a,input[type=submit]").click(function () { closing = false; });
    $(window).unload(function () {
        if (closing) {
            jQuery.ajax({ url: "http://localhost:49591/Account/LogOff", async: false });
        }
    });
});
</script>

Call the logout.aspx when window closes using javascript + jquery. Do whatever you want to do in the logout.aspx page load event.

The above snippet will have to be added in your master page's html.

Upvotes: 17

RickNZ
RickNZ

Reputation: 18654

You can have a button for the "logout" case.

Unfortunately, there is no reliable way to be notified if the user closes their browser. Other than client-side page unload, which you've said you don't want, about the only other option is periodic Ajax-based polling; both are ugly and notoriously unreliable.

In general, server-side timeouts are a better approach.

Upvotes: 7

Related Questions