我正在为部署在 Azure 中的 MVC 应用程序实现 ValidateAntiForgeryToken。
1) 我在主页中添加了@Html.AntiForgeryToken()。
2)我正在使用 Jquery $.Post 为 Post 操作发送数据 这是代码
`var token = $('[name=__RequestVerificationToken]').val();
var url = '/XX/YYYY/';
$.post(url, { __RequestVerificationToken: token,reportname: reportName},
function (data) { window.navigate(data.url) }
);`
我将令牌传递给服务器并在 fiddler 中看到,将 Cookie 和隐藏变量传递给服务器。
3) 我将动作归因于 [HttpPost] 和 [ValidateAntiForgeryToken]
这在我的天蓝色开发环境中完美运行,但是当我们进入不同的环境时它会失败,它会抛出异常“未提供所需的防伪令牌或无效”
我观察到隐藏变量的值和 cookie 变量中的值是不同的。即使在我的开发环境中也是如此,但它在开发环境中有效,但在测试中无效。请建议如何解决此异常。
DEV 和 TEST azure 站点的配置相同。