如何知道 OWIN cookie/User 会话即将在 mvc 5 中过期
How to know an OWIN cookie/User Session is about to expire in mvc 5
我是我的 MVC 5 应用程序,如果用户已经在另一个系统上登录,我需要阻止他们登录。为此,我在数据库中有一个标志列,并在用户登录时将其值设置为 true,在用户注销时将其值设置为 false。但是当用户在一段时间内处于非活动状态或关闭浏览器时会出现问题,这会使身份验证 cookie 无效但不会更新数据库中的标志,从而使用户在数据库中保持登录状态,从而使用户保持登录状态将永远无法再次登录。
我想知道身份框架是否提供了任何功能,我可以在其中检查身份验证 cookie 是否即将过期,我可以将数据库中的标志设置为 false。
因为我在这里没有得到任何答案,所以我找到了解决这个问题的方法,希望这对其他人也有帮助。我现在正在做的是将当前用户的 SessionId
存储在数据库中,并在用户登录时将其 isLoggedIn
标志设置为 true。当用户注销时,我将 isLoggedIn
标记为 false,并从数据库中删除 SessionId
。注销功能的相同功能也存在于 Global.asax 中的 Session_End()
事件中,它处理不活动问题。现在这对我来说很好,但如果有人有不同的更好的方法,我愿意接受其他想法。
我是我的 MVC 5 应用程序,如果用户已经在另一个系统上登录,我需要阻止他们登录。为此,我在数据库中有一个标志列,并在用户登录时将其值设置为 true,在用户注销时将其值设置为 false。但是当用户在一段时间内处于非活动状态或关闭浏览器时会出现问题,这会使身份验证 cookie 无效但不会更新数据库中的标志,从而使用户在数据库中保持登录状态,从而使用户保持登录状态将永远无法再次登录。 我想知道身份框架是否提供了任何功能,我可以在其中检查身份验证 cookie 是否即将过期,我可以将数据库中的标志设置为 false。
因为我在这里没有得到任何答案,所以我找到了解决这个问题的方法,希望这对其他人也有帮助。我现在正在做的是将当前用户的 SessionId
存储在数据库中,并在用户登录时将其 isLoggedIn
标志设置为 true。当用户注销时,我将 isLoggedIn
标记为 false,并从数据库中删除 SessionId
。注销功能的相同功能也存在于 Global.asax 中的 Session_End()
事件中,它处理不活动问题。现在这对我来说很好,但如果有人有不同的更好的方法,我愿意接受其他想法。