Аутентификация сбрасывается при закрытии вкладки в браузере

Я хочу удалить аутентификацию пользователя, когда вкладка с моей веб-страницей закрыта в любом браузере. И когда пользователь загружает мою веб-страницу в новой вкладке, он не должен видеть свои данные, пока не войдет в систему.

я использовал

 FormsAuthentication.SetAuthCookie("E|" + contct.EMailAddress1, false);

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

Что я могу использовать в asp.net, C#

1 ответ

Вы можете попробовать удалить куки, используя JavaScript onunload событие.

<body onunload="deleteAllCookies()">

вызовет функцию JavaScript deleteAllCookies() на вкладке браузера закройте, а в функции удалите все куки, очистите аутентификацию

<script>
        function deleteAllCookies() {
            var cookies = document.cookie.split(";");

            for (var i = 0; i < cookies.length; i++) {
                var cookie = cookies[i];
                var eqPos = cookie.indexOf("=");
                var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
                document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
            }
        }
</script>

РЕДАКТИРОВАТЬ

Ваш вопрос должен очистить аутентификацию, когда вкладка закрыта в браузере. И вы используете FormsAuthentication.SetAuthCookie как показано в вопросе. Вот почему я предложил удалить куки, используя JavaScript onunload событие как в моем ответе. Таким образом, он будет очищать аутентификацию, когда вкладка закрыта в браузере, не будет рассматривать другую вкладку с разными этапами сайта (т.е. ответ на вопрос).

Если вы хотите сохранить аутентификацию на другой вкладке с другой стадией сайта, вы должны обмениваться данными между окнами браузера (и вкладками тоже) с помощью файлов cookie. Если вы нашли другую вкладку с тем же сайтом, не удаляйте куки. Вы можете сделать это в функции JavaScript. Надеюсь, эта ссылка поможет вам. Или попробуйте гуглить.

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