gpt4 book ai didi

asp.net - 如何通过弹出窗口保持用户登录状态?

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

我有一个应用程序,要求用户在 15 到 30 分钟不活动期间重新输入密码,以便他们可以继续他们正在做的事情。

我目前的想法是使用一段 javascript 在 15 分钟后调用弹出窗口,要求用户再次登录。整个网站有 15 分钟的表单例份验证超时和 30 分钟的 session 超时。

如果用户在弹出窗口中成功验证了自己的身份,我希望它允许原始页面进行回发。

目前,我的弹出窗口正在运行(使用 JS 进行 15 分钟倒计时),并且用户可以再次登录,但是当弹出窗口关闭并且用户尝试在其原始页面上执行操作时,他们会要求重新登录。

我认为这是因为附加到原始页面的原始 cookie 现在已经过期,并且不会检测到新的 cookie。

如何将弹窗中的认证成功传递到原页面?

最佳答案

如果您添加元标记或隐藏的 div,它会在元标记的内容属性中填充身份验证 token ,并且仅在隐藏的 div 的 div 主体中填充身份验证 token ,您可以像这样从弹出窗口中获取它...

var debugWin = window.open('','aWindow','width=600,height=600,scrollbars=yes');
var somevar = debugWin.document.body.getElementById("my_hidden_div_id").innerText;

然后您可以使用 JavaScript 中 somevar 的内容更新 session cookie。只要维护窗口的句柄,就应该能够获取窗口的 DOM。

在获取 dom 的方式上可能存在一些跨浏览器差异,我认为 IE 的方法略有不同,但很容易测试并且结果是相同的。

关于asp.net - 如何通过弹出窗口保持用户登录状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864133/

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