当我的网页在任何浏览器中关闭的选项卡时,我想删除用户身份验证。当用户在新标签中加载我的网页时,在登录之前他不应该看到任何他的详细信息。
我用了
FormsAuthentication.SetAuthCookie("E|" + contct.EMailAddress1, false);
但仅在浏览器完全关闭时才会清除。我想在标签关闭时清除。
我可以在asp.net,C#中使用什么
当我的网页在任何浏览器中关闭的选项卡时,我想删除用户身份验证。当用户在新标签中加载我的网页时,在登录之前他不应该看到任何他的详细信息。
我用了
FormsAuthentication.SetAuthCookie("E|" + contct.EMailAddress1, false);
但仅在浏览器完全关闭时才会清除。我想在标签关闭时清除。
我可以在asp.net,C#中使用什么
您可以尝试使用 javascriptonunload
事件删除 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
如问题所示。这就是为什么我建议onunload
在我的回答中使用 javascript 事件删除 cookie。因此,当标签在浏览器中关闭时,它将清除身份验证,不会考虑具有网站不同阶段的另一个标签(即回答问题)。
如果您想在站点不同阶段的另一个选项卡上维护身份验证,您必须使用 cookie 在浏览器窗口(以及选项卡)之间进行通信。如果您发现另一个具有相同站点的选项卡,请不要清除 cookie。您可以在 javascript 函数中执行此操作。希望此链接对您有所帮助。或者尝试谷歌搜索。