Tam*_*erM 8 asp.net-mvc azure antiforgerytoken
我们有一个包含多种形式的页面.每个都有自己的@Html.AntiForgeryToken().在我的本地机器上一切都很棒.
我们部署到Azure(PAAS),但__RequestVerificationToken 没有在每个请求上创建.有时它在那里,有时我得到所需的防伪cookie不存在,很少我得到令牌不匹配错误.
在这一点上我完全无能为力.我无法弄清楚我们的代码或Azure环境是否有问题?这些形式没有ajax.
我们已将该<machineKey>部分添加到我们的web.config中.没有缓存.有时它从第一次出现在新设备上.
我相信您的问题来自于在一页上有多个带有不同防伪令牌的表单。当请求页面时,您会在表单隐藏字段中获得两个不同的令牌,但在 cookie 中仅获得一个令牌。表单 POST 包含导致错误的不匹配标记。
如果页面仅包含一个表单,请尝试 AFT 如何为您工作。如果它工作正常那么我的假设是正确的。
该答案包含针对具有多种表单的页面的可能解决方案,但是它具有一些安全缺陷,如此处所述。
我不确定为什么在您的本地主机上一切正常。我创建了简单的应用程序,并尝试使用正确的 cookies 令牌但使用上一个会话中的旧表单令牌来进行表单 POST。令我惊讶的是,这样的 POST 成功通过了。在这种情况下,asp.net 可能对本地请求进行了一些特殊处理。我还没有找到任何这方面的信息。
如果我的回答仍然不能帮助您,请您提供以下数据以供进一步分析:
| 归档时间: |
|
| 查看次数: |
3250 次 |
| 最近记录: |