2

質問が 1 つあります。最近、すべてのフォームに偽造防止トークンを配置し、コントローラーにValidateAntiForgeryToken属性を配置しました。

しかし、多くの場合、私のユーザーはフォームに入力し、ブラウザー ボタンを押して戻ってきて、間違いの 1 つを修正し、無効な偽造防止トークンを取得します。

なぜそれが起こるのか理解できます(私たちは戻って、もはや有効ではない偽造防止トークンを使用しています)が、この動作を回避する方法はありますか? このページを強制的にリロードしますか?

4

2 に答える 2

4

これは奇妙です。偽造防止トークンは、1回限りの使用トークンではありません。それらは通常、同じセッション内で楽しく再利用できます。その時点でユーザーはログインしていますか?トークンはログインに基づいているため、この間に再度ログインした場合、トークンは無効になる可能性があります。

于 2012-06-28T14:30:13.143 に答える
0

TempDataメソッドを使用した「redirect-after-postパターン」で問題が解決するはずです。

TempData基本的な考え方は、アクション内に何らかの値を入れて、その値が存在するかどうかを確認することです。ユーザーが「戻るボタン」を押すかページを更新した場合、TempData値は表示されなくなります。この値を確認して適切に対応できます(つまり、必要に応じてアクションを再送信できます)。

もっと詳しく説明することもできますが、DarinDimitrovによるこの投稿はそれを適切に要約しています

于 2012-06-28T11:16:11.647 に答える