Pourquoi @Html.AntiForgeryToken() générer des jetons différents dans la même réponse?

Un seul Rasoir vue contient plusieurs formes, chacune avec son propre appel à @Html.AntiForgeryToken()

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

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

Si je comprends bien, ces deux anti faux jetons doivent être la même.

<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>

Pourquoi les valeurs différentes?

Sûrement, ils devraient être les mêmes, parce qu'ils sont envoyés dans la même Réponse du serveur?
Le la documentation ne dit rien au sujet de l'appeler qu'une seule fois.

Gardez à l'esprit que vtortola de l'approche crée une faille de sécurité, comme expliqué dans ma réponse ci-dessous. Les jetons doivent être différentes.

OriginalL'auteur | 2014-03-18