gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:47:07 25 4
gpt4 key购买 nike

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

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

我们拥有的 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" />
}

你能帮我解决这个问题吗?我们发现在删除其中一个防伪标记后,一切似乎都按预期工作。

我们尝试设置防伪的机器 key ,但也没有用。

问候。

最佳答案

为了多次使用 AntiForgeryToken,我执行以下操作。首先,在我的 View 顶部,我添加以下行:

ViewBag.__RequestVerificationToken = @Html.AntiForgeryToken().ToString();

然后,在我需要 token 的每个表单中,我添加以下内容:

@Html.Raw(ViewBag.__RequestVerificationToken)

关于ajax - 如何在同一个 MVC3 页面上使用多个带有 AntiForgery 验证的 ajax 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8271085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com