当我的网页在任何浏览器中关闭的标签页时,我想删除用户验证。而当用户加载我的网页在新标签页,他应该不会看到任何他的细节,直到日志中。在浏览器中关闭标签时验证清除
我用
FormsAuthentication.SetAuthCookie("E|" + contct.EMailAddress1, false);
但只清除完成时浏览器关闭。我想清除选项卡关闭时的情况。
我可以在asp.net用什么,C#
当我的网页在任何浏览器中关闭的标签页时,我想删除用户验证。而当用户加载我的网页在新标签页,他应该不会看到任何他的细节,直到日志中。在浏览器中关闭标签时验证清除
我用
FormsAuthentication.SetAuthCookie("E|" + contct.EMailAddress1, false);
但只清除完成时浏览器关闭。我想清除选项卡关闭时的情况。
我可以在asp.net用什么,C#
你可以尝试删除使用javascript onunload
事件饼干。
<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
事件删除cookies,就像我在回答中一样。因此,当浏览器中的标签关闭时,它将清除身份验证, 不会考虑站点的不同阶段(即回答问题)的另一个选项卡。
如果您希望在具有不同站点阶段的其他选项卡上维护身份验证,则必须使用cookie在浏览器窗口(以及选项卡)之间进行通信。 如果您发现有同一网站的另一个标签,请勿清除Cookie。你可以在javascript函数中做到这一点。 希望this link会帮助你。或尝试使用Google搜索。
如果我的网站有两个不同阶段的标签,如果关闭一个,其他人也会失去认证。 – Mathee
编辑我的答案 – pravprab