在浏览器中关闭选项卡时,身份验证清除

本文关键字:身份验证 清除 选项 浏览器 | 更新日期: 2023-09-27 17:52:50

我想删除用户身份验证时,有我的网页在任何浏览器关闭的选项卡。当用户加载我的网页在新的标签,他不应该看到任何他的详细信息,直到登录。

我用

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

,但只有在完全关闭浏览器时才清除。我想在tab键关闭时清除

我可以在asp.net, c#中使用什么

在浏览器中关闭选项卡时,身份验证清除

您可以尝试使用javascript onunload事件删除cookie。

<body onunload="deleteAllCookies()">

将在浏览器选项卡关闭时调用javascript函数deleteAllCookies(),并在函数中删除所有cookie,将清除身份验证

<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。当标签页在浏览器中关闭时,它会清除身份验证,不会考虑另一个标签与网站的不同阶段(即回答问题)。

如果你想在站点的不同阶段的另一个选项卡上维护身份验证,你必须使用cookie在浏览器窗口(和选项卡)之间进行通信。如果你发现另一个标签有相同的网站,不要清除cookie。您可以在javascript函数中执行此操作。希望这个链接能帮到你。或者试试谷歌一下。