gpt4 book ai didi

ASP.NET:如何检测身份验证超时

转载 作者:行者123 更新时间:2023-12-01 16:46:56 24 4
gpt4 key购买 nike

我看过多篇类似 this one 的文章解释如何检测用户 session 已超时。为了清楚起见,这些文章指的是此 web.config 行定义的超时值:

<sessionState mode="InProc" cookieless="UseDeviceProfile" timeout="120" />

不要过多地讨论该方法,但这涉及到检查 Session.IsNewSession 是否为 true 以及 session cookie 是否已存在。但我还没有看到任何关于如何检测身份验证超时的文章 - 由以下 web.config 行定义的超时:

<authentication mode="Forms">
<forms loginUrl="~/Home/Customer" timeout="60" name=".ASPXAUTH" requireSSL="false" slidingExpiration="true" defaultUrl="~/Home/Index" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
</authentication>

在线多篇文章,包括this SO post ,已经说过您的 session 超时值通常应该是您的身份验证超时值的两倍。所以现在,如上所述,我的 session 是 120,我的身份验证是 60。这意味着我永远不会遇到 session 超时但用户仍然经过身份验证的情况;如果用户超时,那将是由于身份验证,而不是 session 。

因此,像其他人一样,我感兴趣的是如何向用户报告其 session 已超时(但实际上是由于身份验证超时)。有谁知道实现此目的的方法,或者有任何在线资源可以为我指出解决方案吗?

最佳答案

这可能不是最佳方法,但这是我的想法。

登录时,在用户登录时在 session 标记中记录时间戳。在每个后续请求中(可能在 global.asax BeginRequest 中?),将此时间戳与当前时间进行比较,并将其与身份验证超时进行匹配(斯科特·汉塞尔曼 explains how to read it here)。

无论如何,这就是我“突然想到的”想法......

关于ASP.NET:如何检测身份验证超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4402141/

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