gpt4 book ai didi

javascript - 如果在一页 mvc 上登录,则从所有页面注销用户

转载 作者:行者123 更新时间:2023-12-02 18:34:12 25 4
gpt4 key购买 nike

是否可以从浏览器中打开的所有窗口(例如 mvc 中的 gmail)注销用户。我目前正在使用带有 javascript 的 Ajax 响应来每 15 秒调用一次页面重新加载,但只是想知道 mvc 中是否有一些内置函数可以做到这一点。如果这是唯一的方法,我的代码如下,即一些定时响应根据您的经验,最佳计时器间隔是多少?

在我的共享布局窗口中

@if (User.Identity.IsAuthenticated)
{
<script type="text/javascript">
window.onload = function(){
setInterval(function () { loadchkDoc() }, 15000);
}
function loadchkDoc(){
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
xmlhttp.open("GET", "/Home/chkDoc", true);
xmlhttp.send();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var k = xmlhttp.responseText;
if (k == "gotologin") {
location.reload();
}
}
}
}
</script>
}

在我的家庭 Controller 中

public string chkDoc()
{
if (User.Identity.IsAuthenticated)
{
return "authorized";
}
else
{
return "gotologin";
}
}

最佳答案

您可以尝试检查是否有身份验证 cookie,而不是调用 ajax 请求。需要将 cookie HttpOnly 设置为 false。

function checkSession() {
if (!$.cookie('.ASPXAUTH')) {
logout();
}
else {
setTimeout(checkSession, 15);
}
}

当然,该解决方案仅解决用户单击注销时的情况。此外,您可以创建另一个持续 session 超时的 cookie,并检查该超时是否已过期。

关于javascript - 如果在一页 mvc 上登录,则从所有页面注销用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17494352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com