2

使用 Asp.Identity 2.2.1 和双因素身份验证,当用户登录时,如果 TwoFactorRememberBrowser cookie 不存在,他们将被带到 SendCode 操作,并且他们会收到一个发送到他们的电子邮件或电话的代码。这是MVC 5.2 的标准示例代码。如果他们选择记住浏览器,那么 cookie 会被保存以允许他们下次使用,而无需代码。

然后第二个用户在同一设备上登录。它们与上面的 SendCode 屏幕一起显示,并为它们保存 cookie。

但是,如果第一个用户再次登录,TwoFactorRememberBrowser cookie 现在已为第二个用户更改,因此它不再记住第一个用户的浏览器。

这根本不符合逻辑。作为一个用户,当我选择记住浏览器时,它不应该依赖任何其他人随后记住同一个浏览器。

这是 Asp.Net Identity 设计的工作方式,还是我错过了什么?

4

1 回答 1

0

cookie 由服务器分发给用户代理(浏览器),并在该用户代理访问同一服务器时传回,直到 cookie 到期。这是 cookie 协议。

让 2 个用户共享同一个浏览器似乎不是协议管理的事情。

Asp.Net Identity 试图通过对 cookie 内容进行加密来确保安全性,但在分发 cookie 时错过了区分认证用户的机会,因此必须在收到共享 cookie 时盲目接受。

我认为这Asp.Net Identity 的工作方式。我认为这是一个设计缺陷。

于 2016-11-18T13:05:06.567 回答