加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 并不总是创建__RequestVerificationToken

发布时间:2020-12-16 03:50:28 所属栏目:asp.Net 来源:网络整理
导读:我们有一个包含多种形式的页面.每个都有自己的@ Html.AntiForgeryToken().在我的本地机器上一切都很棒. 我们部署到Azure(PAAS),但没有在每个请求上创建__RequestVerificationToken.有时它在那里,有时我得到所需的防伪cookie不存在,很少我得到令牌不匹配错误.
我们有一个包含多种形式的页面.每个都有自己的@ Html.AntiForgeryToken().在我的本地机器上一切都很棒.

我们部署到Azure(PAAS),但没有在每个请求上创建__RequestVerificationToken.有时它在那里,有时我得到所需的防伪cookie不存在,很少我得到令牌不匹配错误.

在这一点上我完全无能为力.我无法弄清楚我们的代码或Azure环境是否有问题?这些形式没有ajax.

我们添加了< machineKey>我们的web.config部分.没有缓存.有时它从第一次出现在新设备上.

解决方法

我相信你的问题来自于在一个页面上使用不同的防伪标记的多个表单.
当请求页面时,您会在表单隐藏字段中获得两个不同的标记,但cookie中只有一个标记.
表单POST包含导致错误的不匹配标记.

如果页面只包含一个表单,请尝试AFT如何为您服务.如果它工作正常那么我的假设是正确的.

This answer包含具有多种形式的页面的可能解决方案,但是它具有一些安全缺陷,如here所述.

我不确定为什么一切都在你的localhost上运行正常.
我已经创建了简单的应用程序并尝试使用正确的cookie令牌形式POST,但使用旧的表单令牌.令我惊讶的是,这样的POST成功通过.
在这种情况下,asp.net可能会对本地请求进行一些特殊处理.我还没有找到任何相关信息.

如果我的回答仍无法帮助您,请提供以下数据以供进一步分析:

>返回HTTP标头的原始页面请求,并形成防伪标记.>使用已发送的HTTP标头表单POST请求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读