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
Isn't this what Session_OnEnd in global.asax is for?
This event isn't triggered when the browser is closed.
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.
<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.