【发布时间】:2012-08-06 15:44:54
【问题描述】:
我正在为部署在 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 站点的配置相同。
【问题讨论】:
标签: asp.net asp.net-mvc