小编Nac*_*sek的帖子

如何在同一个MVC3页面上使用多个带有AntiForgery验证的ajax表单?

当我们在同一个cshtml页面上有多个可能的表单发布到控制器时,防伪验证不起作用.我们浏览了MVC3代码,发现问题出现在这部分代码中:

if (!String.Equals(cookieToken.Value, formToken.Value, StringComparison.Ordinal)) {
            // error: form token does not match cookie token
            throw CreateValidationException();
}
Run Code Online (Sandbox Code Playgroud)

我们拥有的cshtml是这样的:

@using (@Ajax.BeginForm()) {
    @Html.AntiForgeryToken()
    <input type="submit" class="buttonBlue" value="form1" />
}

@using (@Ajax.BeginForm()) {
    @Html.AntiForgeryToken()
    <input type="submit" class="buttonBlue" value="form2" />
}
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个问题吗?我们发现,在移除其中一个防伪标记之后,传送似乎按预期工作.

我们尝试为防伪设置机器密钥,但它也不起作用.

问候.

ajax antiforgerytoken razor asp.net-mvc-3

3
推荐指数
1
解决办法
1734
查看次数

标签 统计

ajax ×1

antiforgerytoken ×1

asp.net-mvc-3 ×1

razor ×1