考虑使用持久 cookie 进行表单例份验证的情况。
如果同一用户使用两个不同的浏览器或两台不同的机器登录,当用户从其中一个浏览器/机器注销时,他是否仍然可以从另一个浏览器/机器登录?
通常,Web 应用程序如何处理这种情况?
最佳答案
我在很大程度上同意斯里尼瓦斯的观点。这是我对这个问题的看法
- 登录时创建一个仅 HTTP 的 cookie,其中包含登录时生成的 guid,这将是您的浏览器/计算 secret 钥。关闭浏览器将删除 cookie
- 获取用户 ID
- 保留用户表中的对,例如:user:a, key:12345
- 用户通过身份验证后的后续请求身份验证算法
- 获取数据库中当前用户 ID 最后使用的 key
- 检查 cookie 是否存在,如果不存在,则完全未进行身份验证
- 检查 cookie 值是否与数据库中的值相同,如果不同则完全取消身份验证
使用此方法,任何后续登录都将导致所需的重新身份验证并使任何其他身份验证无效。实际上强制用户仅使用 1 个浏览器/计算机
关于asp.net - 使用表单例份验证注销从不同浏览器/计算机登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233795/