|
1
|
| Linda Lawton - DaImTo · 技术社区 · 7 年前 |
|
|
1
0
“ SlidingExpiration 设置为true,指示处理程序在处理超过到期窗口一半的请求时,用新的到期时间重新发布新cookie。“对于30天的到期窗口,在前15天内不会发布新cookie。15天后的第一个请求将发出一个刷新的cookie。 30分钟的超时可能来自 security stamp validator ,仅每30分钟运行一次(验证成本很高)。听起来您的邮票生成或验证不正确。您是否配置或自定义了该组件? 侧注:拆卸 opts.Cookie.Expiration 它被忽略了。 |
|
2
0
要找到这个问题的根源需要相当长的时间。如果有人遇到这个问题,我会在这里解释。 首先,问题在于安全令牌。创建identity.application cookie时,安全令牌存储在用户表中。此令牌存储在cookie中。应用程序每五分钟联系一次Identity Server,检查令牌是否需要验证。如果它超过30分钟,那么安全令牌将被验证。(注意,5分钟和30分钟时间都是可配置的,这只是默认值) 这是用来做一个叫做“从哪里注销”的东西。如果更改密码,用户表中您所在行的安全令牌将被更新。通过使其与所有设备上存储在cookie中的不同来实现。这将迫使您从哪里注销。 发行NR一 SignInManager.cs#L260 验证安全令牌,但不测试它是否为空。 因此,如果cookie有问题,并且由于某种原因令牌在数据库中为空,或者在我的情况下,它已被另一个cookie重写,那么用户将登录30分钟,然后在第一次尝试验证安全令牌时被踢出。导致发出请求 #7055 . 每次都应该测试cookie,以确保其中包含安全令牌。 发行NR 2 以下代码行在用户中签名并创建cookie,将安全令牌存储在所述cookie中
经过大量的挖掘和调试,我发现下面这一行用一个不包含安全令牌的新cookie重写了原始cookie。
|
|
|
hashbytes · 在构造函数中调用异步函数。 8 年前 |