如何设置ASP.Net网页过期,以便用户点击提交按钮时,如果按下浏览器的后退按钮尝试返回并再次按提交,则他/她将收到页面过期错误?
答案 0 :(得分:3)
使用HttpResponse.Cache来控制页面的可缓存性。这使您可以控制选项,例如缓存中的页面到期以及Cache-Control HTTP标头。
答案 1 :(得分:2)
首先,当用户提交表单时使用Post-Redirect-Get pattern。这将阻止他们轻松使用后退按钮。要做到这一点,您真正需要做的就是在完成表单处理后发出Response.Redirect()
调用,即使它是相同的URL。
其次,您可以考虑在与提交过程相关联的表单中使用唯一的id字段,这样如果提交完成,则不能再次使用相同的id。这种适用性取决于你正在做什么。
答案 2 :(得分:0)
据我了解,您的问题分为两部分:
1 - 停止浏览器后退按钮 - 它不起作用&我认为我们永远不应该阻止用户退回。因此,也许您可以使用META标记使内容过期,以便用户看到“内容过期”页面&必须重新加载才能获得最新内容
2 - 停止多个POST - 根据定义,POST不是无效的,即。应该可以进行多个POST操作。 一种可能的机制是在第一篇文章完成后禁用POST / SUBMIT按钮。因此,用户将无法第二次执行此操作。
HTH。