gpt4 book ai didi

asp.net-mvc - 为什么@Html.AntiForgeryToken() 在同一个响应中生成不同的 token ?

转载 作者:行者123 更新时间:2023-12-04 10:04:10 25 4
gpt4 key购买 nike

一个 Razor View 包含多个表单,每个表单都有自己对 @Html.AntiForgeryToken() 的调用。

<form id="f1">
@Html.AntiForgeryToken()
</form>

<form id="f2">
@Html.AntiForgeryToken()
</form>

据我了解,这两个防伪 token 应该是相同的。
<form id="f1">
<input name="__RequestVerificationToken" type="hidden" value="duVT4VtiYybun-61lnSY1ol__qBwawnELooyqT5OSrCJrvcHvDs_Nr9GLxNxwvBaI4hUcKZVkm6mDEmH2UqNorHD1FnJbKJQLWe8Su_dhy_nnGGl5GhqqC3yRGzcxbBM0" />
</form>

<form id="f2">
<input name="__RequestVerificationToken" type="hidden" value="ZMISz3IWHU_HCKP4FppDQ5lvzoYhlQGhN1cmzKBPz4OgDzyqSUK3Q1dqvw1uHsb4eNyd9U3AbFcnW8tR7g1QS8Dyhp0tFc-ee1sfDAOqbLCcgd3PDnLCbXx09pnPREaq0" />
</form>

为什么值不同?

它们肯定应该是相同的,因为它们是在服务器的相同 Response 中发送的?
documentation没有说只调用一次。

最佳答案

恐怕这行不通。

防伪 token 也在响应 cookie 中传输,因此您的将只包含最后一个 token ,因此第一个表单将始终失败。

你可以尝试做这样的事情:

@{
ViewBag.Title = "Index";
var token = Html.AntiForgeryToken();
}

<form id="f1">
@token
</form>

<form id="f2">
@token
</form>

我已经尝试过了,两种形式都使用了相同的标记。

关于asp.net-mvc - 为什么@Html.AntiForgeryToken() 在同一个响应中生成不同的 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22478392/

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