阻止浏览器重新发送已提交给服务器的表单信息

时间:2010-11-03 10:22:21

标签: c# asp.net

如何通过刷新URL阻止用户重新发送数据?

(实际上在将数据发布到服务器并将服务器的数据返回给客户端之后:如果用户刷新了url地址,那么他会再次使用以前的数据发送回服务器)

那么,我怎样才能通过c#,asp.net来阻止它?

3 个答案:

答案 0 :(得分:1)

据推测,如果它是POST,浏览器应该询问用户是否再次发送数据,因此仅刷新相同的URL不会导致这种情况发生。

如果您想阻止用户说“是”并再次向服务器发布相同的数据,您可以使用时间戳和/或随机数来防止将相同的数据发布到服务器。如果该用户的数据库中已存在相同的时间戳和/或随机数,则将其作为副本处理 - 或者询问用户是否再次执行相同的操作。

答案 1 :(得分:0)

抱歉,我一开始没问你。

跟踪在指定的持续时间内使用相同IP发布的相同表单在服务器端具有相同的值。

答案 2 :(得分:0)

您可以执行Response.Redirect到新页面,让用户知道他们的信息已成功提交。然后,如果他们在该页面上刷新,则不会重新提交任何数据。

有关详细信息,请参阅以下文章。 http://en.wikipedia.org/wiki/Post/Redirect/Get