首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.Net防伪

Asp.Net防伪
EN

Stack Overflow用户
提问于 2012-06-28 17:34:14
回答 2查看 1.2K关注 0票数 2

我有一个问题,我最近在我所有的表单中添加了防伪标记,并且在我的控制器中添加了ValidateAntiForgeryToken属性。

但我的用户通常会填写一个表单,然后返回浏览器按钮,对其中一个错误进行更正,然后他们就会得到无效的防伪令牌。

我可以理解为什么会发生这种情况(我们正在返回并使用一个不再有效的防伪令牌),但是有什么方法可以避免这种行为吗?比如强制重新加载这个页面?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-28 22:30:13

这很奇怪。防伪令牌不是一次性使用的令牌。它们通常可以在同一会话中愉快地重用。您的用户此时是否已登录?令牌基于登录,因此如果他们在这段时间内重新登录,则令牌可能不再有效。

票数 4
EN

Stack Overflow用户

发布于 2012-06-28 19:16:12

带有TempData方法的“后重定向post模式”应该可以解决您的问题。

基本思想是在操作中将一些值放在TempData中,并检查该值是否存在。如果用户已按下“后退”按钮或刷新了页面,则TempData值将不再存在-您可以检查此值并做出适当的反应(即,如果您愿意,可以重新提交操作)。

我可以更详细地介绍,但Darin Dimitrov的this post对此进行了适当的总结

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11241796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档