4

我正在尝试将其添加Html.AntiForgeryToken()到 MVC3 站点的登录表单中。该表格位于网站的每个页面上。我注意到,如果用户在网站上打开多个选项卡,然后返回旧选项卡并提交登录表单,则其他选项卡上的令牌将变为无效,即使使用 salt 也是如此。有没有办法解决这个问题?

这只是一个例子,网站上还有其他表单,用户似乎要打开多个选项卡。

4

2 回答 2

-1

我们的电子商务网站也有同样的问题。在我的情况下,用户可以在不登录的情况下将东西放入他的购物篮。但是在没有登录的情况下打开多个标签后,用户决定登录并在登录一个标签后尝试添加所有产品,这就是错误所在。

所以我决定在提交表单之前在这个页面上放一个获取新的 AntiForgeryToken。

我创建了一个新的局部视图,其中只有 Html.AntiForgeryToekn,并在提交表单之前通过 AJAX 调用它。并将表单上的 __RequestVarificationToekn 值替换为新值。

我希望这可以为您解决问题。

于 2015-07-03T07:32:05.490 回答
-2

您是否使用 FormsAuthentication 登录?如果是,则登录时将在多个选项卡之间共享相同的令牌实例,因此所有具有现有 cookie 的用户都会遇到麻烦。要解决此问题,请关注此帖子以获得更多帮助

MVC-防伪令牌

于 2015-01-08T06:55:34.313 回答