Аутентификация сбрасывается при закрытии вкладки в браузере
Я хочу удалить аутентификацию пользователя, когда вкладка с моей веб-страницей закрыта в любом браузере. И когда пользователь загружает мою веб-страницу в новой вкладке, он не должен видеть свои данные, пока не войдет в систему.
я использовал
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. Надеюсь, эта ссылка поможет вам. Или попробуйте гуглить.